Wie kann ich eine Liste von Listen in eine Liste in Java 8 umwandeln?
Wenn ich eine List<List<Object>>
, wie kann ich das in einer List<Object>
enthält alle Objekte in der gleichen iteration um, indem Sie die Funktionen von Java 8?
InformationsquelleAutor der Frage Sarah Szabo | 2014-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
flatMap
zum glätten der internen Listen (nach Konvertierung in Streams) in einem einzigen Datenstrom, und dann sammeln Sie das Ergebnis in eine Liste:InformationsquelleAutor der Antwort Eran
flatmap
ist besser, aber es gibt andere Wege um das gleiche zu erreichenInformationsquelleAutor der Antwort Saravana
Können Sie die
flatCollect()
Muster aus Eclipse-Sammlungen.Wenn Sie können nicht ändern, Liste von
List
:Hinweis: ich bin ein Beitrag zu Eclipse Sammlungen.
InformationsquelleAutor der Antwort Nikhil Nanivadekar
Ich will einfach nur, um zu erklären, eine weitere Szenario wie
List<Documents>
diese Liste enthält ein paar mehr Listen anderer Dokumente, wieList<Excel>
,List<Word>
,List<PowerPoint>
. Also die Struktur istNun, wenn Sie wollen, um die Iteration in Excel nur aus Dokumenten, dann tun Sie etwas wie unten..
Also der code wäre
Ich hoffe das kann jemand lösen das Problem während dem Programmieren..
InformationsquelleAutor der Antwort Kushwaha
Den
flatMap
Methode aufStream
können sicherlich reduzieren diese Listen für Sie, aber muss es schaffenStream
Objekte (element -, dann eineStream
für das Ergebnis.Brauchen Sie nicht alle diese
Stream
Objekte. Hier ist die einfache, klare code, um die Aufgabe auszuführen.Weil ein
List
istIterable
dieser code ruft dieforEach
Methode (Java-8-feature), das ist geerbt vonIterable
.Und ein
List
'sIterator
gibt Elemente zurück, in der Reihenfolge.Für die
Consumer
übergibt diesen code in eine Methode Referenz (Java 8), um die pre-Java-8-MethodeListe.addAll
hinzufügen, um die innere Liste Elemente nacheinander.InformationsquelleAutor der Antwort rgettman