【问题标题】:java restrict List items [duplicate]java限制列表项[重复]
【发布时间】:2018-01-22 20:17:52
【问题描述】:

我是 Java 新手。我的列表中有 5000 个项目。我想遍历列表,以便一次可以获取 100 个项目。我有以下代码:

   List<ProcessQueueBatch> processQueueBatchList = 
        Repository.getProcessQueue("Jor");
for (ProcessQueueBatch queueBatch : processQueueBatchList) 

   {
    // do some processing



   }

我想处理列表中的前 100 个项目,然后处理下一个 100 个项目,然后再处理下一个 100 个项目,直到处理完所有 5000 个项目。我在列表中总共有 5000 项。如何修改我的 for 循环或列表,以便一次获得 100 个项目。

任何帮助将不胜感激。

【问题讨论】:

  • 默认情况下,一个迭代周期一次只处理 一个 元素。除非你想做一些奇怪的列表切片,否则我不确定我是否看到这种方法有什么价值。
  • 您可以定义一个索引变量并使用if 条件来帮助您分离循环。

标签: java


【解决方案1】:

您可以使用List.subList(int, int) 从您的processQueueBatchList 获取第一个K 项目,如下所示:

int K = 100;
List<ProcessQueueBatch> newList = new ArrayList<>(processQueueBatchList.subList(0, K));

你应该可以从这里拿走它...

【讨论】:

    【解决方案2】:

    如果您选择的List 支持它,那么总是有List::subList

    还有使用Streams 的实现。例如:

    myList.stream()
            .skip(10) // Skip the first 'n' elements.
            .limit(100) // Limit the return size.
            .collect(Collectors.toList()); // Collect however you see fit.
    

    如果您还需要进行一些过滤,这会很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      相关资源
      最近更新 更多