gpt4 book ai didi

java - 一次从数组中拉出 10 个项目的最佳方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:01 24 4
gpt4 key购买 nike

我有一个可以包含无限数量对象的 ArrayList。我需要一次拉取 10 个项目并对它们进行操作。

我能想到的就是这个。

int batchAmount = 10;
for (int i = 0; i < fullList.size(); i += batchAmount) {
List<List<object>> batchList = new ArrayList();
batchList.add(fullList.subList(i, Math.min(i + batchAmount, fullList.size()));
// Here I can do another for loop in batchList and do operations on each item
}

有什么想法吗?谢谢!

最佳答案

你可以这样做:

int batchSize = 10;
ArrayList<Integer> batch = new ArrayList<Integer>();
for (int i = 0; i < fullList.size();i++) {
batch.add(fullList.get(i));
if (batch.size() % batchSize == 0 || i == (fullList.size()-1)) {
//ToDo Process the batch;
batch = new ArrayList<Integer>();
}
}

当前实现的问题是您在每次迭代时创建一个 batchList,您需要在循环外声明此列表 (batchList)。像这样的东西:

int batchAmount = 10;
List<List<object>> batchList = new ArrayList();
for (int i = 0; i < fullList.size(); i += batchAmount) {
ArrayList batch = new ArrayList(fullList.subList(i, Math.min(i + batchAmount, fullList.size()));
batchList.add(batch);
}
// at this point, batchList will contain a list of batches

关于java - 一次从数组中拉出 10 个项目的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35307952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com