网站服务理念,中外商贸网站建设,武安市城乡建设局网站,cpanel伪静态wordpresslist 拆分 目录概述需求#xff1a; 设计思路实现思路分析1.list 拆分是2.用stream的parallel实现list的分批处理3.使用stream的parallel实现list的分批处理 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full bus… list 拆分 目录概述需求 设计思路实现思路分析1.list 拆分是2.用stream的parallel实现list的分批处理3.使用stream的parallel实现list的分批处理 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busyskip hardness,make a better result,wait for change,challenge Survive. happy for hardess to solve denpendies. 目录 概述
list 拆分是一个常见的需求。
需求
list 拆分是一个常见的需求。
设计思路
实现思路分析
1.list 拆分是 // 创建模拟listListInteger dataList new ArrayList();for (int i 1; i 22; i) {dataList.add(i);}// 每批次数据记录数量int partialLimit 10;//判断是否有必要分批if (partialLimit dataList.size()) {//当前数据按限制条数可分为多少批次int part dataList.size()/partialLimit;ListInteger partList;for (int i 0; i part; i) {// 截取批次长度的listpartList dataList.subList(0, partialLimit);// 分批业务逻辑处理- 打印替代System.out.println(分割出口的数据: partList);// 去除已经处理的部分 (Arrays.asList()方式生成的数据不能进行此修改操作会报错)partList.clear();System.out.println(剩余数据: dataList);}// 获取最后一次截取后的剩余列表数据if (!dataList.isEmpty()) {// 业务逻辑数据处理 - 打印替代System.out.println(dataList);}} else {System.out.println(数据不需要分批直接进行业务逻辑处理);}2.用stream的parallel实现list的分批处理 // 按每5个一组分割int partialLimit 5;ListInteger list Arrays.asList(1, 2, 3, 4, 5, 6, 7,8,9,10);// 获取需要分割的次数注意不能直接除以批次数量int limit (list.size()partialLimit -1)/partialLimit;// 使用流遍历操作ListListInteger arrayList new ArrayList();Stream.iterate(0, n - n 1).limit(limit).forEach(i - {arrayList.add(list.stream().skip((long) i * partialLimit).limit(partialLimit).collect(Collectors.toList()));});System.out.println(arrayList);3.使用stream的parallel实现list的分批处理 // 按每5个一组分割int partialLimit 5;ListInteger list Arrays.asList(1, 2, 3, 4, 5, 6, 7,8,9,10);// 获取需要分割的次数注意不能直接除以批次数量,会丢失数据;int limit (list.size()partialLimit -1)/partialLimit;// 获取分割后的集合ListListInteger splitList Stream.iterate(0, n - n 1).limit(limit).parallel().map(a - list.stream().skip((long) a * partialLimit).limit(partialLimit).parallel().collect(Collectors.toList())).collect(Collectors.toList());// 执行具体业务方法。打印代替System.out.println(splitList);参考资料和推荐阅读
参考资料 官方文档 开源社区 博客文章 书籍推荐 1.https://www.cnblogs.com/ChenQ2/p/16636306.html 2.https://www.cnblogs.com/ChenQ2/p/16636306.html 欢迎阅读各位老铁如果对你有帮助点个赞加个关注呗同时期望各位大佬的批评指正~