折叠列表<list <string>&gt;使用lambda?</string> </list <string>进入List <string>

时间:2014-09-19 19:57:59

标签: java lambda java-8

说我有一份清单..

List<List<String>> lists = new ArrayList<>();

是否有一种聪明的lambda方式将其折叠成所有内容的列表?

2 个答案:

答案 0 :(得分:5)

这就是flatMap的用途:

List<String> list = inputList.stream() // create a Stream<List<String>>
                             .flatMap(l -> l.stream()) // create a Stream<String>
                                                       // of all the Strings in
                                                       // all the internal lists
                             .collect(Collectors.toList());

答案 1 :(得分:0)

你可以做到

List<String> result = lists.stream()
    .flatMap(l -> l.stream())
    .collect(Collectors.toList());