2017-08-14 18 views
1

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

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

    { 
    // do some processing 



    } 

我想要做的列表中的第一个100个项目,然后接下来的100个项目,然后再接下来的100个项目的处理,直到所有5000项处理。列表中共有5000个项目。我如何修改我的for循环或列表,以便一次可以获得100个项目。

任何帮助将不胜感激。

+0

默认情况下,迭代周期一次只处理* one *元素。除非你想做一些奇怪的列表切片,否则我不确定在这种方法中我看到很多价值。 – Makoto

+0

你可以使用'if'条件来定义一个索引变量来帮助你分离循环。 –

回答

0

您可以使用List.subList(int, int)从您processQueueBatchList拿到第一K项目,像这样:

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

你应该能够把它从这里...

0

如果您的List选择支持它,总是有List::subList。使用Stream s也有实现。例如:

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

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