2016-05-23 15 views
2

lese ich ein Java 8 Buch von Ricahrd Warburton und er gab die folgende Übung:verketten Listen flatMap mit

versuchen Sie die folgenden mit der Methode Referenzen Umschreiben:

[...]

Der flatMap Ansatz Listen verketten

ich verstehe nicht wirklich, wieanwendenhier. Die Sache, die mich verwirrte war, dass flache Karte verwendet wird, um jedes Element eines Stream zu einem anderen Stream abzubilden und sie dann miteinander zu verbinden, um einen größeren Stream zu erzeugen, aber hier müssen wir List<T> trennen.

public static <T> List<T> concat(List<T> lst1, List<T> lst2){ 
    //lst1.stream().flatMap() - it maps each elements 
           //of lst1 to stream and concatenates it for each           
           //element  
} 

Irgendwelche Ideen?

Antwort

5

Für den Zweck der Übung ist die Idee, Stream.of(...) zu verwenden, um eine Stream<List<T>> zu erstellen, die die zwei angegebenen Listen enthält, und flache Liste jede Liste mit der Methodenreferenz List::stream. Dies wird die Stream<List<T>> in eine Stream<T> abflachen. Dann können Sie alle Elemente in eine Liste mit Collectors.toList() sammeln:

+0

Eigentlich sehr einfach. Vielen Dank. – stella