我已经被困了几个小时了,找不到解决方案。 我想比较两个ArrayLists,我想将每个唯一元素从列表中的一个放入另一个arrayList。
例如,如果我的一个arrayList包含{0,1,2,3},并且我想将它与{{1},{2},{3}}进行比较,我想在我的''中收到{2} unqiue'arraylist 请帮帮我
我会更具体。 ArrayList1 = {0,1,2,3,4}和ArrayList2 = {{0,1} {0,1,2}}所以我想要的是在单个ArrayList中拥有ArrayList1中唯一的唯一。在这个例子中,我想要ArrayList3 = {3,4}
答案 0 :(得分:0)
您可以使用List
的方法boolean removeAll(Collection c)。
它将从此列表中删除指定集合中包含的所有元素。因此,在调用此列表后,您的列表将包含唯一元素。
假设你有arrayList1
和arrayList2
,你可以像这样比较它们:
arrayList1.removeAll(arrayList2);
现在arrayList1
只包含唯一元素。
答案 1 :(得分:0)
如果我正确解释您的问题,您想在2个列表中形成新的常用元素列表吗?如果是,则遍历其中一个列表并检查该元素的第二个列表contains(Object)
是否添加到第三个列表。我现在无法提供代码示例,但是当我到达计算机时,我很乐意编辑它(如果需要的话)。
编辑:
代码可能看起来像这样:
private static <T> List<T> getUniqueList(final List<T> first, final List<T> second){
final List<T> unique = new ArrayList<T>();
for(final T element : first)
if(second.contains(element))
unique.add(element);
return unique;
}
或者如果您使用的是Java 8:
private static <T> List<T> getUniqueList(final List<T> first, final List<T> second){
final List<T> unique = new ArrayList<>();
first.stream().filter(second::contains).forEach(unique::add);
return unique;
}