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

 我来答
IHaveIDHere
2014-03-30
知道答主
回答量:19
采纳率:0%
帮助的人:18.2万
展开全部
可不可以这样做,在数据库中新建一个temp表,把list中数据写入temp中,然后对比两张表。
那一天的蒲公英
推荐于2018-04-11 · TA获得超过139个赞
知道小有建树答主
回答量:140
采纳率:100%
帮助的人:92.4万
展开全部
首先,不通过循环来实现这种需求是不可能的,即使你使用了java有关collection的api,看似没有循环,其内部还是有循环的
其次,你对重复数据的定义很含糊,是数据的主键相同就算数据相同,还是数据的所有字段相同才算数据相同,这里要有明确定义

我觉得,我的做法是这样的,先将list中5万条数据分成5个新list,每个list中1万条数据,然后将数据库中的数据读取出来,每一万条一个list,也就是10个list
然后写五个线程,分别进行对比,注意,list是非线程安全的,也就是说,你要实现线程安全的方法
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shenyuzhiyuan
2014-03-30 · TA获得超过183个赞
知道答主
回答量:40
采纳率:0%
帮助的人:50.8万
展开全部
1楼的方法可以,不过就是找出数据后还需要把那个临时表删除,
这一类的事情交给内存处理比较妥当
利用retainAll()这个方法, 这是Connection接口的方法, 对set list 都适用,
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。

比如
List list = .......//5万条数据 的list
List database = .....//10万条数据 的list
然后
list.retainAll(database) //这样list就会保留与database的交集
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式