当前位置: 首页 > 知识库问答 >
问题:

批量循环数组列表[重复]

阎阎宝
2023-03-14

我想以小批量遍历ArrayList。

例如,如果ArrayList大小为75,批大小为10,我希望它处理记录0-10,然后10-20,然后20-30,依此类推。

我试过这个,但没有成功:

int batchSize = 10;
int start = 0;
int end = batchSize;

for(int counter = start ; counter < end ; counter ++)
{
    if (start > list.size())
    {
        System.out.println("breaking");
        break;
    }

    System.out.println("counter   " + counter);
    start = start + batchSize;
    end = end + batchSize;
}

共有3个答案

常培
2023-03-14
int start = 0;
int end=updateBatchSize;
List finalList = null;
 try {
        while(end < sampleList.size()){
            if(end==sampleList.size()){
                break;
            }
            finalList = sampleList.subList(Math.max(0,start),Math.min(sampleList.size(),end));
            start=Math.max(0,start+updateBatchSize);
            end=Math.min(sampleList.size(),end+updateBatchSize);
        }
锺离飞鸣
2023-03-14

您可以像从batch size和list size中提取余数一样查找count。

int batchSize = 10;
int start = 0;
int end = batchSize;

int count = list.size() / batchSize;
int remainder = list.size() % batchSize;
int counter = 0;
for(int i = 0 ; i < count ; i ++)
{
    System.out.println("counter   " + counter);
    for(int counter = start ; counter < end ; counter ++)
    {
        //access array as a[counter]
    }
    start = start + batchSize;
    end = end + batchSize;
}

if(remainder != 0)
{
    end = end - batchSize + remainder;
    for(int counter = start ; counter < end ; counter ++)
    {
       //access array as a[counter]
    }
}
阚元白
2023-03-14

你需要的是:列表。来自Google Guava的分区(java.util.List,int)

例子:

final List<String> listToBatch = new ArrayList<>();
final List<List<String>> batch = Lists.partition(listToBatch, 10);
for (List<String> list : batch) {
  // Add your code here
}
 类似资料:
  • 假设我有一个大小为[10]的数组,当该数组被填满时,我想实现一个FIFO结构,而不是它只是填满了,因此无法向数组中添加新的东西,并抛出旧的东西。 例如,如果我有一个包含汽车制造商的字符串数组,当我的数组中有10个制造商时,我希望删除最旧的条目,添加最新的条目,但要考虑kepping FIFO。我如何在这样的方法中实现它:

  • 我试着解决这个数组列表问题,但没有成功 无论如何,在while循环中,我必须向ArrayList添加新的字符串项。 如果有一个重复的项目,应该有一个消息说重复的项目。 While循环将按单词结束中断

  • 联机-节点1,节点2离线-节点3,节点4未知-节点5,节点6

  • 所以我想看看有没有办法循环这些数组,看看哪一个与main函数中提供的{6,1,1,6,3,1,4,7,7,1}的数组匹配。

  • 我有一个特殊的问题,当在数组中分配循环中的元素时,事情发生得很好。 当我移出循环并进行检查时,所有索引的相同数组值将设置为最后一个索引的数组值。下面是代码 当我打印的这基本上是在循环值显示正确.的时刻执行出来并检查"outside_loop"的值成为dataModelCollection[6]. getName()-这是最后一个索引的值.相同是、、的情况。 不知道我哪里错了。 无论它的价值在这里是

  • 我试图设计一个购物车,读取美元数额,然后打印这些值回来。然而,我的时循环不会终止,我的数组列表存储了错误的值。 结果应该是这样的: 但这是我的输出: while 循环不会终止,而是返回到第一个提示:“请输入商品价格,或 -1 退出:” 程序不断将“-1”计为数组列表的一部分。“-1”值应该充当“否”并终止向 arrayList 添加更多元素,但在我的代码中,它被吸收到 arrayList 中。我尝