2017-08-14 31 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. 

如果您還需要進行一些過濾,那麼這會很有幫助。