java 中 。数据库中有10万条记录 list中有5万条 ,怎样不通过for循环,找出数据库和list中相同的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中 。数据库中有10万条记录 list中有5万条 ,怎样不通过for循环,找出数据库和list中相同的数据?相关的知识,希望对你有一定的参考价值。

可不可以这样做,在数据库中新建一个temp表,把list中数据写入temp中,然后对比两张表。 参考技术A 首先,不通过循环来实现这种需求是不可能的,即使你使用了java有关collection的api,看似没有循环,其内部还是有循环的
其次,你对重复数据的定义很含糊,是数据的主键相同就算数据相同,还是数据的所有字段相同才算数据相同,这里要有明确定义

我觉得,我的做法是这样的,先将list中5万条数据分成5个新list,每个list中1万条数据,然后将数据库中的数据读取出来,每一万条一个list,也就是10个list
然后写五个线程,分别进行对比,注意,list是非线程安全的,也就是说,你要实现线程安全的方法
参考技术B 1楼的方法可以,不过就是找出数据后还需要把那个临时表删除,
这一类的事情交给内存处理比较妥当
利用retainAll()这个方法, 这是Connection接口的方法, 对set list 都适用,
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。

比如
List list = .......//5万条数据 的list
List database = .....//10万条数据 的list
然后
list.retainAll(database) //这样list就会保留与database的交集

以上是关于java 中 。数据库中有10万条记录 list中有5万条 ,怎样不通过for循环,找出数据库和list中相同的数据?的主要内容,如果未能解决你的问题,请参考以下文章

实现java 中 list集合中有几十万条数据,每100条为一组取出

java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!

《java提高数据导入效率优化思路》

java 从几十万条数据的list集合中随机取出1000个元素重新生成集合?

数据库缓慢检索/更新/插入问题,每个表中有超过 500 万条记录

当有大约 100 万条记录时,如何在 Java 中比较 Hive 和 Cassandra 数据