如何将多个list列表转换成一个list列表? | Java Debug 笔记

2,024 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看<活动链接>

目录

  • 问题
  • 解决

问题

问题:如何将多个list列表转换成一个list列表?

Stackoverflow地址stackoverflow.com/questions/2…

如果有一个 List<List> 列表,如果利用Java 8的特性转换成List?

解决

方法一、

可以使用flatMap把内置链表转换成单Stream对象,然后再收集结果组成一个链表,参考代码如下:

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

方法二、

其实,这个过程可以不需要Stream对象,直接简化步骤代码:

// listOfLists is a List<List<Object>>.
List<Object> result = new ArrayList<>();
listOfLists.forEach(result::addAll);