java 使用lambda将List〈List>折叠< String>成List< String>?

ctrmrzij  于 2023-05-05  发布在  Java
关注(0)|答案(3)|浏览(191)

假设我有一个列表列表。

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

有没有一种聪明的lambda方法可以将其折叠成所有内容的List?

xnifntxz

xnifntxz1#

这就是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());
xzlaal3s

xzlaal3s2#

你能做到

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

t30tvxxf3#

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

相关问题