如何将主列表分解为两个大小的多个列表

时间:2018-12-18 06:23:52

标签: java salesforce apex

我需要在Salesforce中合并重复项。合并操作最多只包含2个重复项。因此,我想将列表(如果元素大于2个)分解为大小为2的多个较小列表,然后执行合并操作。

2 个答案:

答案 0 :(得分:1)

如果您愿意使用第三方库,这是一项单行工作。

使用番石榴:

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

Lists.partition(list, 2);

使用Apache通用集合

导入: import org.apache.commons.collections4.ListUtils;

ListUtils.partition(list, 2)

如果您不想使用第三方库,请告诉我。

答案 1 :(得分:0)

不确定如何扩大合并范围,但可以执行以下操作以分解列表:

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;
    }
}

请记住,这只是我的首要任务,我敢肯定有更好的解决方案!