Bei einer ArrayList den Wert getten der gleich ist?
Gibt es einen weg einen String z.B. mit den Werten von einer ArrayList zu vergleichen und wenn der String zu einem dieser Werte passt den Wert von der ArrayList zu getten der mit dem String gleich ist?
Was meinst du mit "den Wert"? Den Index?
die Strings die in der ArrayList gespeichert sind
Was hast du genau und was willst du haben? Stell doch bitte eine konkrete Frage. Du hast einen String und eine ArrayList von Strings? Und was möchtest du dann bestimmen?
Ich habe eine arrayList mit mehreren Strings. Ich habe auch nen String "name". Nun brauch ich ne get Methode die mir namen aus der Liste zurück gibt wenn inhalt von name da auch is
3 Antworten
Also: Du möchtest alle Einträge der Liste, die einen vorgegebenen String enthalten. Ganz einfach ginge das folgendermaßen, wenn part der String ist und stringList die ArrayList<String>:
ArrayList<String> result = new ArrayList<>();
for(String element : stringList) {
if(element.contains(part)) {
result.add(element);
}
}
Wir iterieren über die Liste und fügen alle Elemente, die part enthalten, dem Ergebnis hinzu.
Eleganter (aber auch weniger elementar) könnte man es mit Lambda-Ausdrücken schreiben:
ArrayList<String> result = stringList.stream()
.filter(element -> element.contains(part))
.collect(Collectors.toList());
Bei einer Eigenimplementation könntest du eine ganz einfache lineare Suche durchführen: Mit einer Schleife durch die Menge laufen und jedes Element mit dem gesuchten Wert vergleichen.
Eine nützliche Methode, die wiederum bereits implementiert ist, heißt indexOf. Sie liefert dir die Position (Index) des ersten Funds oder -1, wenn es keinen Treffer gab.
int position = haystack.indexOf(needle);
Über den Index kannst du schließlich wie gewohnt den Wert aus der Liste einholen.
Pseudocode:
für i = 0 bis Grösse des Arrays - 1
wenn Array[i] = String
Wert = i
beende Schleife
ansonsten
Nächstes i