Java 8 ( Stream.of
y Stream.concat
)
Die vorgeschlagene Lösung gilt für drei Listen, kann aber auch für zwei Listen angewendet werden. In Java 8 können wir die folgenden Funktionen nutzen Strom.von o Stream.concat als:
List<String> result1 = Stream.concat(Stream.concat(list1.stream(),list2.stream()),list3.stream()).collect(Collectors.toList());
List<String> result2 = Stream.of(list1,list2,list3).flatMap(Collection::stream).collect(Collectors.toList());
Stream.concat
nimmt zwei Streams als Eingabe und erzeugt einen lazily concatenated stream, dessen Elemente alle Elemente des ersten Streams sind, gefolgt von allen Elementen des zweiten Streams. Da wir drei Listen haben, haben wir diese Methode verwendet ( Stream.concat
) zwei Mal.
Wir können auch eine Hilfsklasse mit einer Methode schreiben, die eine beliebige Anzahl von Listen annimmt (mit varargs ) und gibt eine verkettete Liste als zurück:
public static <T> List<T> concatenateLists(List<T>... collections) {
return Arrays.stream(collections).flatMap(Collection::stream).collect(Collectors.toList());
}
Dann können wir diese Methode wie folgt nutzen:
List<String> result3 = Utils.concatenateLists(list1,list2,list3);
7 Stimmen
Wenn Sie tun dies ausschließlich für Iteration Zwecke siehe eine andere Frage - es gibt Google Guava und Java 8 Lösungen stackoverflow.com/questions/4896662/
0 Stimmen
Java 8-Lösung mit Utility-Methode: stackoverflow.com/a/37386846/1216775
0 Stimmen
Dies ist nur eine der vielen Unzulänglichkeiten der Java Collections API.