Objects aus List aussortieren

  • Themenstarter Themenstarter _________
  • Beginndatum Beginndatum
?

_________

Gast
Hallo,

ich habe verschiedene Funktionen, die jeweils eine ArrayList returnen. Ich möchte daraus eine einzelne ArrayList erstellen, die nur Objekte enthält, die in allen Listen vorkommen. Wie würdet ihr das am elegantesten lösen? Ich kann den Code dazu schreiben, mir fällt nur keine effiziente Methode ein.

LG
 
Also praktisch folgender Code?

Java:
List[] listen = alle Listen einlesen
for(List l : listen){
  for(Object o : l){
    if(!hauptliste.contains(o))
      hauptliste.add(o);
  }
}
for(List l : listen){
  hauptliste.retainAll(listen);
}
 
geht auch einfacher:

Java:
List[] listen = alle Listen einlesen
List hauptliste=listen[0];
for(int i=1;i<listen.length;i++){
  hauptliste.retainAll(listen[i]);
}
 
Stimmt, das setzt es voraus.
Du kannst folgendes machen (weiß jedoch nicht, ob das die praktischste Lösung ist wegen O(n))
Java:
List<List<T>> allLists = getAllLists(); 
List<T> retainedList = new XYZList<T>(); //ArrayList oder was auch immer.
for(List<T> list : allLists)
    retainedList.addAll(list);
for(List<T> list : allLists)
    retainedList.retainAll(list);
 
Man sollte in Erwägung ziehen, dort ein Set zu verwenden, um das "contains" auf der Liste zu sparen. Welche von beiden man zur Set machen muss, müßte ich jetzt aber auch erst nachsehen ... 😳
 

Zurück
Oben