Ich bin mir nicht sicher, ob es einen einfacheren Weg mit der Stream-API gibt, aber Sie können dies tun, indem Sie einen Stream über die Indizes aller zu berücksichtigenden Listen verwenden:
%Vor%Damit wird die Größe der größten Liste in den gegebenen Listen erreicht. Für jeden Index wird es dann flach mit einem Strom verknüpft, der durch die Elemente jeder Liste an diesem Index gebildet wird (falls das Element existiert).
Dann können Sie es mit
verwenden %Vor% Unter Verwendung der Protonpack -Bibliothek können Sie die Methode interleave
um genau das zu tun:
Ich mag Tunakis Antwort und habe ein bisschen mehr daran gearbeitet:
%Vor% Ich wollte sehen, ob wir die anfänglichen Listen auch als Streams behandeln können, wie sich herausstellte. Als Nebeneffekt vermeiden wir get(i)
auf einer Liste (wenn das wirklich ein sehr langer LinkedList
wäre, würden wir es vermeiden wollen). Ich habe keinen Weg gefunden, ohne Kenntnis einer maximalen Länge der ursprünglichen Listen auszukommen.
Tags und Links java java-8 java-stream