gpt4 book ai didi

java - 在Java中合并多个列表

转载 作者:IT老高 更新时间:2023-10-28 20:57:23 26 4
gpt4 key购买 nike

如果我想在 Java 中将两个列表合二为一,我可以使用 ListUtils.union(List list1,List list2)。但是如果我想合并多个列表呢?

这行得通:

import org.apache.commons.collections.ListUtils;
List<Integer>list1=Arrays.asList(1,2,3);
List<Integer>list2=Arrays.asList(4,5,6);
List<Integer>list3=Arrays.asList(7,8,9);
List<Integer>list4=Arrays.asList(10,0,-1);
System.out.println(ListUtils.union(ListUtils.union(list1, list2),ListUtils.union(list3, list4)));

但它看起来并不是最好的解决方案,阅读起来也不是特别好。遗憾的是 ListUtils.union(list1,list2,list3,list4) 不起作用。多次使用 addAll 并为此创建自己的列表,其中所有条目的重复项对我来说似乎也不理想。那我能做什么呢?

最佳答案

借助 Stream API,Java 8 提供了一种简单的方法。如下代码所示。我们基本上已经创建了一个包含所有列表的流,然后由于我们需要列表的各个内容,因此需要使用 flatMap 将其展平,最后将元素收集到 List 中.

List<Integer>list1=Arrays.asList(1,2,3);
List<Integer>list2=Arrays.asList(4,5,6);
List<Integer>list3=Arrays.asList(7,8,9);
List<Integer>list4=Arrays.asList(10,0,-1);
List<Integer> newList = Stream.of(list1, list2, list3,list4)
.flatMap(Collection::stream)
.collect(Collectors.toList());
System.out.println(newList); // prints [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, -1]

关于java - 在Java中合并多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45281454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com