gpt4 book ai didi

java - Java中如何查找多个ArrayList中的唯一元素

转载 作者:行者123 更新时间:2023-12-01 07:34:35 25 4
gpt4 key购买 nike

我有多个Integer ArrayList,其中包含一些重复元素。我想从他们身上得到独特的元素。但如何呢?
java.util.ArrayList.removeAll() 没有完全达到我的目的。请参阅下面的测试代码-

ArrayList<Integer> d = new ArrayList<Integer>();
d.add(2);
d.add(4);
d.add(5);
d.add(7);
d.add(8);
d.add(9);

ArrayList<Integer> e = new ArrayList<Integer>();
e.add(3);
e.add(7);

d.removeAll(e);

for (int t : d) {
System.out.print(t+", ");
}

在输出中,我得到 2, 4, 5, 8, 9, 。显然 3 丢失了。另外,为了简单起见,我在这里只使用了两个 ArrayList,但在我的代码中,我有两个以上的 ArrayList

如何在 Java 中的多个 ArrayList 中找到唯一元素

最佳答案

创建 Set<Integer>来自您的List<Integer> 。该集合将不包含重复的对象:

List<Integer> lstNumbers = new ArrayList<Integer>();
//fill the list of integers...
Set<Integer> setNumbers = new HashSet<Integer>(lstNumbers);
//the set will contain no duplicate values...
for (int t : setNumbers) {
System.out.print(t+", ");
}

请注意,您可以添加更多 List<Integer>Set通过使用Set#addAll方法(如 rahulroc 答案中所示)在不重复的元素集合中添加更多整数:

//assuming setNumbers has been initialized before
setNumbers.addAll(anotherListOfNumbers);
setNumbers.addAll(andAnotherListOfNumbers);

此外,作为最佳实践,请尝试对接口(interface)(List、Set 等)进行编程,而不是对类实现(ArrayList、HashSet)进行编程,如下所示:What does it mean to “program to an interface”?

关于java - Java中如何查找多个ArrayList中的唯一元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13777807/

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