Java: создание фрагментов списка для обработкиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java: создание фрагментов списка для обработки

Сообщение Anonymous »

У меня есть список с большим количеством элементов. При обработке этого списка в некоторых случаях я хочу, чтобы список был разделен на более мелкие подсписки, а в некоторых случаях я хочу обработать весь список.

Код: Выделить всё

private void processList(List entireList, int partitionSize)
{
Iterator entireListIterator = entireList.iterator();
Iterator chunkOfEntireList =   Iterators.partition(entireListIterator, partitionSize);
while (chunkOfEntireList.hasNext()) {
doSomething(chunkOfEntireList.next());
if (chunkOfEntireList.hasNext()) {
doSomethingOnlyIfTheresMore();
}
}
Я использую com.google.common.collect.Iterators для создания разделов. Ссылка на документацию здесь
Поэтому в случаях, когда я хочу разделить список размером 100, я вызываю

Код: Выделить всё

processList(entireList, 100);
Теперь, когда я не хочу создавать фрагменты списка, я подумал, что могу передать Integer.MAX_VALUE в качестве разделаРазмер.

Код: Выделить всё

processList(entireList, Integer.MAX_VALUE);
Но это приводит к тому, что моему коду не хватает памяти. Кто-нибудь может мне помочь? Что мне не хватает? Что итераторы делают внутри себя и как мне это преодолеть?

РЕДАКТИРОВАНИЕ: мне также требуется предложение «if» внутри, чтобы что-то делать, только если есть больше списков для обработки. то есть мне нужна функция hasNext() итератора.

Подробнее здесь: https://stackoverflow.com/questions/433 ... processing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»