Java 数组列表的分区,以便在其中包含固定对象?

Java 数组列表的分区,以便在其中包含固定对象?,java,collections,java-stream,Java,Collections,Java Stream,我希望将N个对象的列表转换为arraylist的块,应该以这样的方式完成,即不应该有重复的对象,并且块应该具有一定的大小 示例-ArrayList大小-100 块大小20 Arraylist中应该有5个块。如果您使用java8,您可以使用流的map()函数操作数组,如下所示。然后您可以将新元素分配给新列表,这样您就可以保留原始列表和新列表 List<String> list = Arrays.asList("geeks", "gfg", &qu

我希望将N个对象的列表转换为arraylist的块,应该以这样的方式完成,即不应该有重复的对象,并且块应该具有一定的大小

示例-ArrayList大小-100 块大小20
Arraylist中应该有5个块。

如果您使用java8,您可以使用流的map()函数操作数组,如下所示。然后您可以将新元素分配给新列表,这样您就可以保留原始列表和新列表

List<String> list = Arrays.asList("geeks", "gfg", "g",
                                      "e", "e", "k", "s");

List<String> answer = list.stream().map(String::toUpperCase).
collect(Collectors.toList());

// displaying the new stream of UpperCase Strings
System.out.println(answer);
List List=Arrays.asList(“极客”、“gfg”、“g”,
“e”、“e”、“k”、“s”);
List answer=List.stream().map(String::toUpperCase)。
collect(Collectors.toList());
//显示新的大写字符串流
System.out.println(应答);

有关更多详细信息->

简单。迭代列表,每个“size”元素创建一个新块:

public static <T> List<List<T>> split(Collection<T> data, int size)
{
    List<List<T>> lists=new ArrayList<>((data.size()+size-1)/size);
    List<T> list=new ArrayList<>(size);
    for(T t:data)
    {
        list.add(t);
        if(list.size()==size)
        {
            lists.add(list);
            list=new ArrayList<>(size);
        }
    }
    if(list.size()>0) lists.add(list);
    return lists;
}
公共静态列表拆分(收集数据,整数大小)
{
列表列表=新的ArrayList((data.size()+size-1)/size);
列表=新的ArrayList(大小);
for(T:数据)
{
列表。添加(t);
if(list.size()==size)
{
列表。添加(列表);
列表=新的ArrayList(大小);
}
}
if(list.size()>0)lists.add(list);
退货清单;
}
您可以使用的:


有很多方法可以解决这个问题,我通过使用一个工作流解决了这个问题,因为我想以一种我可以对列表进行更多控制的方式执行列表分区,并且遵循camunda工作流非常有用

谢谢

请在问题中添加更多细节,如您迄今为止尝试过的内容。refere()我认为您完全误解了这个问题,如果“nothaveduplicate”的意思是原始数组可能有重复项-您可以事先删除重复项,如下所示:
noDuplicatesList=integers.stream().distinct().collect(Collectors.toList())然后调用
列表。分区(noDuplicatesList,3)
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
List<List<Integer>> sublists = Lists.partition(integers, 3);
System.out.println(sublists);
[
  [1, 2, 3],
  [4, 5, 6],
  [7]
]