假设我有 list=[0,1,2,3,4,5]
(总是能被三整除,如 6,9,12,15.. 项)。我想创建新的三个列表,并将此列表的 1/3 复制到每个新创建的列表中。
此列表的示例如下:
newlist1=[0,1]
newlist2=[2,3]
newlist3=[4,5]
我的实际代码:
int equalPart=numberOfVms/3; // 3rd part of VM's is going in each node type
//putting vms for each list . number of vms = number of items in listfor vm
System.out.println("equal parts =" +equalPart);
for(int div=0 ; div<numberOfVms; div++) {
= listForVm.get(div);
}
希望问题很清楚。
最佳答案
如果您使用的是 Java 8,您可以使用:
int size = list.size() / 3;
List<List<Integer>> result = IntStream.range(0, 3)
.mapToObj(l -> list.subList(l * size, (l + 1) * size))
.collect(Collectors.toList());
输出
[[0, 1], [2, 3], [4, 5]]
<小时/>
在到达这一部分之前,您必须检查分区的大小和数量,否则您将得到异常。
关于Java将列表的1/3元素复制到新创建的三个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53005467/