jdk 8等份分割list

 

复制代码
public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.add(6);
        list.add(7);
        list.add(8);
        list.add(9);
        list.add(10);
        list.add(11);
        //每个list存入条数
        int maxSize = 5;
        //计算切分次数
        int limit = (list.size() + maxSize - 1) / maxSize;
        List<List<Integer>> avgList = new ArrayList<>();
        //等份切割,一般是skip与limit使用,maxSize = 5,表示5条为一个list,有11条数据,会分割成3个list
        Stream.iterate(0, n -> n + 1).limit(limit).forEach(i -> {
            //skip就是舍弃stream前多少个元素,limit就是返回流前面多少个元素(如果流里元素少于该值,则返回全部)
            //如skip((long)i * maxSize),i=0时,就是舍弃0个元素,i=1时,舍弃前面的5个元素,依次类推
            List<Integer> tmpList = list.stream().skip((long)i * maxSize).limit(maxSize).collect(Collectors.toList());
            avgList.add(tmpList);
        });
        for (List<Integer> arr : avgList) {
            System.out.println(arr.toString());
        }
    }
复制代码

运行结果如下:

 

posted @   求学者s  阅读(863)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示