Bei einer ArrayList den Wert getten der gleich ist?

Willibergi  09.05.2021, 21:42

Was meinst du mit "den Wert"? Den Index?

Lighdo 
Fragesteller
 09.05.2021, 21:45

die Strings die in der ArrayList gespeichert sind

Willibergi  09.05.2021, 22:07

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?

Lighdo 
Fragesteller
 09.05.2021, 22:36

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());  
Woher ich das weiß:Berufserfahrung – Software-Entwicklung

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

Woher ich das weiß:eigene Erfahrung