首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

Java List的交加,并集和补集

2014-01-03 
Java List的交集,并集和补集2个List: A和B,各自的size()都是几万的级别,有什么算法可以高效地计算出它们的

Java List的交集,并集和补集
2个List: A和B,各自的size()都是几万的级别,有什么算法可以高效地计算出它们的交集,并集和补集

以并集为例,很容易想到下面的算法:
A.removeAll(B);
A.addAll(B);

但是实验发现,removeAll和addAll效率极低,2个List都是几万的级别时,处理起来竟然要几十秒钟,自己尝试写了其他的算法,最快也得10几秒钟的处理时间,想请教大家有什么更好的算法可以快速地计算呢?也可以不用List,只要能实现对两组大数据的交集,并集和补集
[解决办法]
用linkedList来删除或插入效率较高。

并集可以将所有list中的元素放到set中,这样就可以去掉重复得到并集。

交集可循环较小的list,然后逐个判断其他list中是否包含该项元素,包含就放到一个新的list。

热点排行