查找列表列表中每个列表中存在的元素

时间:2012-07-05 18:27:06

标签: java list grails

我有一个java(grails)列表列表,我试图找到列表中每个列表中存在的元素。有没有人有快速的方法来做到这一点?谢谢!

2 个答案:

答案 0 :(得分:1)

如果列表具有唯一元素,您可以这样做(我理解一个元素可以放在少数列表中,但每个列表只能放置一次。否则,如果第一个列表包含[1,2,2,3]和其他包含[x,2,y]作为输出,你会看到[2,2]而不是[2])

List tmpList=new ArrayList<>(lists.get(0));
for(int i=1; i<lists.size(); i++)
    tmpList.retainAll(new ArrayList<>(lists.get(i)));
System.out.println(tmpList);

答案 1 :(得分:0)

获取1个链接列表,复制它,然后检查所有其他链接列表。

如果列表没有元素,则从新制作的列表中删除该元素。

您可以将新制作的列表实现为地图或哈希表,以减少时间复杂度。

无论哪种方式,除非你的列表是排序的,否则你的算法不能比O(n)更快,其中n是所有列表中所有元素的总和

我概述的算法是O(nm),其中m是最小列表的计数。

相关问题