【发布时间】:2021-05-22 03:48:25
【问题描述】:
我有一个大小为 100 的字符串的迭代器。我想每次获取 10 个元素并将它们传递给另一个函数。 除了在循环中设置条件来计算 10 个元素之外,还有其他方法/方式吗?
【问题讨论】:
-
通过在 for 循环中调用迭代器 10 次来收集子列表中的 10 个元素。然后将其传递给您的函数
我有一个大小为 100 的字符串的迭代器。我想每次获取 10 个元素并将它们传递给另一个函数。 除了在循环中设置条件来计算 10 个元素之外,还有其他方法/方式吗?
【问题讨论】:
您可以使用标准数组 API:
int step = 10;
for (int i = 0; i < 10; i ++){
anotherFunction(Arrays.copyOfRange(source, i * step, (i + 1) * step));
}
【讨论】:
这取决于您需要对它们做什么,但问题的编写方式似乎您希望一次处理十个项目。
Iterator<String> it = ... ;
List<String> nextBatch = nextBatchOf(it, 10);
// do something with nextBatch
以及获取下一批元素的方法
List<String> nextBatchOf(Iterator<String> it, int size) {
List<String> batch = new ArrayList<>();
for (int i = 0; i < size && it.hasNext(); i++) {
batch.add(it.next());
}
return batch;
}
【讨论】: