当你有一个 List<List<Object>> 想要取出这个 Object 中的某个属性集合List<Object>时,首先会想到用map(),当使用map()操作时,是返回一个值,而想要返回一个集合或者一个数组的时候,就可以用 flatMap() 来解决这个问题了。
List<List<User>> lists = new ArrayList<>();
List<User> userList = new ArrayList<>();
User a = new User();
User b = new User();
User c = new User();
a.setUserId(1);
b.setUserId(2);
c.setUserId(3);
userList.add(a);
userList.add(b);
userList.add(c);
lists.add(userList);
lists.stream().flatMap(Collection::stream).forEach(System.out::println);
List<User> collect = lists.stream().flatMap(Collection::stream).collect(Collectors.toList());
同样,List<List<Integer>> 转List<Integer>
List<List<Integer>> lists = new ArrayList<>();
List<Integer> list = new ArrayList<>();
list.add(1111111);
list.add(2222222);
list.add(3333333);
lists.add(list);
lists.stream().flatMap(Collection::stream).forEach(System.out::println);
如何将多个list列表转换成一个list列表? | Java Debug 笔记 - 掘金
collections - How can I turn a List of Lists into a List in Java 8? - Stack Overflow
如何使用flatMap_梦--现实的博客-CSDN博客_flatmap