如何在Java 8中将列表列表转换为列表?

2022-08-31 04:06:16

如果我有一个,我如何使用Java 8的功能将其转换为包含相同迭代顺序中的所有对象的。List<List<Object>>List<Object>


答案 1

您可以使用 flatMap 将内部列表(在转换为 Streams 后)平展为单个 Stream,然后将结果收集到列表中:

List<List<Object>> list = ...
List<Object> flat = 
    list.stream()
        .flatMap(List::stream)
        .collect(Collectors.toList());

答案 2

flatmap更好,但还有其他方法可以实现相同的

List<List<Object>> listOfList = ... // fill

List<Object> collect = 
      listOfList.stream()
                .collect(ArrayList::new, List::addAll, List::addAll);