ArrayList prüfen ob es leer ist?

... komplette Frage anzeigen

2 Antworten

 Ich habe eine Methode die soll erstmal überprüfen ob in meiner ArrayList ein String drinne ist

Zum überprüfen, ob es einen Eintrag in der Liste gibt, bist du mit:

recentFile.isEmpty();

schon richtig.

Allerdings Einträge mit null sind auch Einträge und werden davon nicht berücksichtigt.

 dann soll er überprüfen , ob in es schon den gleichen String gibt, wenn ja soll er das ignorieren. 

Auch hier bist du mit 

recentFile.contains(...);

richtig.

Wenn die 5 Werte schon gefüllt sind und ein neuer Wert dazu kommt soll er das beim array[0] ersetzen

Über .size() bekommst du die Länge der ArrayList.

Was aber deine Umsetzung betrifft, folgendes:

//hier soll ja noch reinkommen wenn es leer ist soll eine leere Liste rein und nicht null

In dem Falle generierst du keinen null Eintrag, du machst gar nichts. Du möchtest an der Stelle eine Leere Liste anfügen? deine ArrayList hat elemente vom Typ String und nicht List, daher könntest du nur Strings oder eben null anfügen.

//recentFile.add(0, this.lastOpenPath); //und hier habe ich gedacht ersetz an position 0 den neuen Pfad :D

add bedeutet anfügen.  da wird nichts ersetzt. - Wenn es den Eintrag gibt, willst du nicht diesen ersetzen? - Für ein Ersetzen sollte man "set" wählen.

Ich dachte es soll erst der Eintrag an Position 0 überschrieben werden, wenn es 5 Einträge gibt.

Ich hoffe ihr habt es verstanden

Gegen Ende eher nicht mehr. Leider weicht dein Code von deinem Text ab, daher ist es etwas unklar was du genau meinst.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von FitnHealthy
26.10.2016, 16:33

danke für die Antwort habe es schon selber rausgefunden.

genauso wollte ich es haben : 

public ArrayList manageRecentFiles(ArrayList recentFiles, File newFile)
{
ArrayList recentFilesNew = new ArrayList<>();
recentFilesNew.add(newFile.getAbsolutePath());

for(int i = 0; i < recentFiles.size() && recentFilesNew.size() < 5; i++)
{
if(!recentFilesNew.contains(recentFiles.get(i)))
{
recentFilesNew.add(recentFiles.get(i));
}
}

return recentFilesNew;
}

Ich hatte die Aufgabe falsch verstanden^^.

0

Was möchtest Du wissen?