Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将列表拆分为“;“最大值”;等大小块_Java_List_Split - Fatal编程技术网

Java 将列表拆分为“;“最大值”;等大小块

Java 将列表拆分为“;“最大值”;等大小块,java,list,split,Java,List,Split,我有一个非评级项目的清单,我想他们被分成5倍。目前,我已经这样做了,因为我只是试着均匀地分割成块,最后一个是所谓的“扩展”块,这给我带来了问题 当我有nonRatedItems={1,2,3,4,5,6,7,8}时,块是: 1 2 3 4 5 6 7 8 我希望避免这种情况,以便输出为: 1 6 2 7 3 8 4 5 电流源: Collections.shuffle(nonRatedItems); nonRatedItems = nonRatedItems.subList(

我有一个非评级项目的清单,我想他们被分成5倍。目前,我已经这样做了,因为我只是试着均匀地分割成块,最后一个是所谓的“扩展”块,这给我带来了问题

当我有
nonRatedItems={1,2,3,4,5,6,7,8}
时,块是:

1
2
3
4
5 6 7 8
我希望避免这种情况,以便输出为:

1 6
2 7
3 8
4
5
电流源:

    Collections.shuffle(nonRatedItems);
    nonRatedItems = nonRatedItems.subList(0, (int) Math.ceil(nonRatedItems.size() * 0.2));
    int tfoldSize = nonRatedItems.size() / 5;
    List<List<Integer>> negativeTestFolds = new ArrayList<List<Integer>>();
    if (tfoldSize < 1) {
        nonRatedItems.stream().map(Lists::newArrayList).collect(Collectors.toCollection(() -> negativeTestFolds));
                } else {
                    for (int i = 0; i < 5; i++) {
                        int endIndex = i < 4 ? (i + 1) * tfoldSize : nonRatedItems.size();
                        negativeTestFolds.add(nonRatedItems.subList(i * tfoldSize, endIndex));
                    }
                }
Collections.shuffle(非ratedItems);
nonRatedItems=nonRatedItems.subList(0,(int)Math.ceil(nonRatedItems.size()*0.2));
int-tfoldSize=nonRatedItems.size()/5;
List negativeTestFolds=new ArrayList();
如果(t字体大小<1){
nonRatedItems.stream().map(Lists::newArrayList).collect(collector.toCollection(()->negativeTestFolds));
}否则{
对于(int i=0;i<5;i++){
int-endIndex=i<4?(i+1)*tfoldSize:nonRatedItems.size();
添加(nonRatedItems.subList(i*tfoldSize,endIndex));
}
}
感谢您的任何建议/帮助

是否总是5倍? 为什么不在名单上循环?差不多

List<Integer>[] folds = new List<Integer>[5];
for(int i = 0; i < 5; i++)
{
   folds[i] = new LinkedList<Integer>();
}

for (int i = 0; i < nonRatedItems.size(); i++)
{
   folds[i % 5].add(nonRatedItems.get(i));
}
List[]folds=新列表[5];
对于(int i=0;i<5;i++)
{
folds[i]=新链接列表();
}
对于(int i=0;i
实际上,它将是
k
=折叠。因此,将给出
k
。但是,如果
i=6
,怎么可能进行
折叠[6]
折叠[i%5]。添加(nonRatedItems.get(i))