Java将列表的1/3元素复制到新创建的三个列表

标签 java arraylist

假设我有 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/

相关文章:

java - Spark SASL 无法使用 yarn 在 emr 上工作

java - 当我输入下载链接URL时,如何让chrome F12开发者工具记录网络?

Java 枚举 - 枚举上的 Switch 语句与访问者模式 - 性能优势?

java - 如何从数组列表中获取未通过 mouseclicklistener 选择的对象?

java - 为什么我的简单 Toast 不想出现并且应用程序崩溃?

java - 从字符串中提取字符串

java - 从 Assets 文件夹中获取仅扩展名为 .txt 的文件的文件名

java - 在 ArrayList 中的指定索引处添加元素时出错 [Java]

java - arrayList.remove() 函数如何实现

java - JUnit 测试 ArrayList