2017-08-14 10 views
1

私はjavaを初めて使用しています。私はリストに5000項目あります。私は一度に100項目を得ることができるようにリストをループしたい。私はすべての5000個の項目が処理されるまで、再び次の100個の項目をリストの最初の100項目とし、次の100項目の処理を行うとしたいjava restrictリストアイテム

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

    { 
    // do some processing 



    } 

:私は、次のコードを持っています。リストには合計5000アイテムあります。 forループやリストを変更して、一度に100個のアイテムを取得できるようにするにはどうすればいいですか?

ご協力いただければ幸いです。

+0

繰り返しのサイクルは、デフォルトでは* one *要素のみを一度に処理します。あなたが奇妙なリストスライシングをしたいのでない限り、私はこのアプローチで多くの価値があるとは確信していません。 – Makoto

+0

インデックス変数を定義するには、ループを分離するのに役立つ 'if'条件を使用します。 –

答えて

0

あなたがそうのようなあなたのprocessQueueBatchListから最初Kアイテムを取得するためにList.subList(int, int)を使用することができます。

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

あなたはここからそれを取ることができるはず...

0

Listのあなたの選択がそれをサポートしている場合常にList::subListがあります。

Streamを使用した実装もあります。例:

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

これは、フィルタリングを行う必要がある場合にも役立ちます。

関連する問題