【问题标题】:How to Iterate 10 element each time from a Iterator<String> of size 100如何每次从大小为 100 的 Iterator<String> 迭代 10 个元素
【发布时间】:2021-05-22 03:48:25
【问题描述】:

我有一个大小为 100 的字符串的迭代器。我想每次获取 10 个元素并将它们传递给另一个函数。 除了在循环中设置条件来计算 10 个元素之外,还有其他方法/方式吗?

【问题讨论】:

  • 通过在 for 循环中调用迭代器 10 次来收集子列表中的 10 个元素。然后将其传递给您的函数

标签: java loops iterator


【解决方案1】:

您可以使用标准数组 API:

    int step = 10;
    for (int i = 0; i < 10; i ++){
        anotherFunction(Arrays.copyOfRange(source, i * step, (i + 1) * step));
    }

【讨论】:

  • (如果这是一个数组并且他想要数据的副本)
【解决方案2】:

这取决于您需要对它们做什么,但问题的编写方式似乎您希望一次处理十个项目。

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 2020-01-07
    相关资源
    最近更新 更多