【发布时间】:2017-12-30 02:10:23
【问题描述】:
如果我想在 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 并为此创建自己的列表,其中所有条目的重复项对我来说似乎也不理想。那我能做什么呢?
【问题讨论】:
-
ListUtils不是标准的 Java API 类。您指的是 apache-commons ListUtils 类吗?如果是这样,请编辑您的问题以明确说明。 -
@Bit 谁说这个 OP 用的是 Guava?你的副本是一个专门询问番石榴的问题,答案也是使用番石榴
-
@MickMnemonic 动物也是猫?
-
@MickMnemonic 不,不是。我没有重新打开它——我认为 Ghostcat 是在他意识到这不是一个正确的副本之后自己做了的。如果有人问如何在没有提及特定库的情况下组合列表,那么询问并回答如何使用 Guava 组合 Iterables 的问题不是正确的重复。
-
既然人们似乎已经得出结论,这不是一个重复的问题,有人可以告诉我为什么它仍然被认为是一个坏问题吗?它有两个反对票。