Как разбить основной список на несколько списков второго размера - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть требование объединить дубликаты в Salesforce.Операция слияния принимает дубликаты только до 2. Поэтому я хочу разбить список (если в нем элементов больше 2) на несколько небольших списков размером 2 и выполнить операцию слияния.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Не знаю, как вы могли бы обобщить свое слияние, но вы могли бы сделать следующее, чтобы разбить список:

Integer count = 0;
List<List<SOBJECT>> lists = new List<List<SOBJECT>> (); 
for (SOBJECT record : LIST) {

    if (count == 0) {
        List<SOBJECT> toAdd = new List<SOBJECT> ()
    }        

    if (count < 2) {
        toAdd.add (record);
        count++;
    } else {
        lists.add (toAdd);
        count = 0;
    }
}

Имейте в виду, это только у меня в голове, и я уверен, что естьлучшие решения!

0 голосов
/ 18 декабря 2018

Если вы хотите использовать сторонние библиотеки, это однострочная работа.

с использованием Guava:

import: import com.google.common.collect.Lists;

Lists.partition(list, 2);

Использование общих коллекций Apache :

импорт: import org.apache.commons.collections4.ListUtils;

ListUtils.partition(list, 2)

ПустьЯ знаю, если вы не хотите использовать сторонние библиотеки, я обновлю свой ответ.

...