我如何在Java中每次迭代列表以获取10个元素 [英] How i can iterate list to get 10 elements each time in java

查看:63
本文介绍了我如何在Java中每次迭代列表以获取10个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含70个元素的列表.

I have a list with 70 elements.

例如:

List<Long> dbList = new ArrayList<Long>();

dbList有70条记录.如果我将所有记录发送到MySql中的查询,则需要花费很长时间.所以现在我想每次发送10个元素到数据库查询.因此,我需要以10为间隔对列表进行迭代.我该如何做?这是避免长时间使用IN的好方法.

dbList has 70 records. If I send all the records to a query in MySql it takes a long time. So now I want to send each time 10 elements to database query. So I need to iterate over the list in intervals of 10. How can I do this? Is this a good approach to avoid long time when using IN.

SQL查询

select model.boothId, model.panchayat.panchayatId
from Table1 model
where model.panchayat.panchayatId in(:locationValues)
  and model.publicationDate.publicationDateId in (:publicationDateIdsList)
  and model.constituency.id = :id group by model.panchayat.panchayatId

预先感谢...

推荐答案

ArrayList#subList是非常有效的操作.您可以在大小10的范围内进行迭代:

ArrayList#subList is a very efficient operation. You can iterate over ranges of size 10:

for (int i = 0; i < dbList.size(); i += 10) {
   List<Long> sub = dbList.subList(i, Math.min(dbList.size(),i+10)));
   ... query ...
}

这篇关于我如何在Java中每次迭代列表以获取10个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆