大数据量时取两个List的交集和并集

对于list1和list2,需要求这两个list的交集和并集操作

我们知道list本身自带了retainAll来实现   list1.retainAll(list2)

这种方式在list都比较小的情况下还是可以接受的,但是在大数据量时,这种就速度比较慢了,40万数据量大概需要10分钟,所以需要考虑另外一种方式去处理


在jdk1.8中,有一种方式是通过stream流的处理把list转换成map,再对map进行处理,我们知道,map的底层都是数组加链表的形式来实现的,通常情况下,它的查找效率和写入效率都是O(1)的

map = list.stream().collect(Collectors.toMap((key值)bean::getOrderNo, (这块存value值)bean -> bean))

然后再对map进行处理,有一个需要注意的就是转换的时候需要保证list中的值必须非空,并且没有重复数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容