java - 如何在多个列表中查找共同元素?

标签 java hashset

我有一个列表列表(嵌套列表)。我需要找到它们之间的共同元素。

Example would be 
[1,3,5],
[1,6,7,9,3],
[1,3,10,11]

应该导致 [1,3]

如果不使用HashSet的retainAll方法,如何遍历所有元素来查找?

谢谢,

最佳答案

你可以做什么:

Set<Integer> intersection = new HashSet<>(lists.get(0))
for(List<Integer> list : lists) {
    Set<Integer> newIntersection = new HashSet<>();
    for(Integer i : list) {
        if(intersection.contains(i)) {
            newIntersections.add(i);
        }
    }
    intersection = newIntersection;
}

关于java - 如何在多个列表中查找共同元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36110185/

相关文章:

用于获取大小和删除元素模式的 Java 线程安全集合

java - 更改 for 循环的初始值

java - 如何使用java代码在主报表中添加子报表

java - 插入排序的数据结构,可以获得子集的长度

java - 从我的网站下载 iOS 和 Android 应用程序?

java - 根据变量对自定义 Java 类的数组列表进行排序

c# - 是否可以使用 linq 对一组值进行 GroupBy?

java - 如果我不需要覆盖 equals,则覆盖 HashCode

c# - 我读到过遍历 HashSet 是不好的做法。我应该先调用 .ToList() 吗?

java - 比较循环中的元素。如何最好地避免与自己比较?