List 按照指定大小分割为多个list的几种方式,list分片
如果有一个list<string> 里面可能有1000份或者更多数据,如果需要进行入库等操作,需要拆分成指定大小每份进行处理,这种需求很常见,那么应该怎么做呢?
首先我们需要将 List<String> 转为多份后 进行逐个处理, 处理批量事务注意事务哦
那么怎么将list转为多份呢? 下面介绍2中方式
1:自己写一个方法处理
import com.google.common.collect.Lists;
//自定义分片方法
private static List<List<String>> subList(List<String> list, int batchSize){
List<List<String>> subList = Lists.newArrayList();
for (int i = 0; i < list.size(); i += batchSize) {
int end = i + batchSize;
if (end > list.size()) {
end = list.size();
}
subList.add(list.subList(i, end));
}
return subList;
}
//测试方法
public static void main(String[] args) {
//准备一个list 11个值
List<String> list = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7","8", "9", "10", "11");
//每3个分片调用上面的方法
List<List<String>> lists = subList(list, 3);
System.out.println(lists);
}
//运行后的结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]
测试:
2:使用google包 Lists.partition方法
import com.google.common.collect.Lists;
public static void main(String[] args) {
//准备一个list 11个值
List<String> list = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7","8", "9", "10", "11");
//每3个分片调用Lists.partition的方法
List<List<String>> partition = Lists.partition(list, 3);
System.out.println(partition);
}
//运行结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]
可以看到,两种方法都可以实现将一个list 分割成多个list 这里推荐使用第二种,方便简单, 如果有自定义的需求再将第一个方法改造
关于list的分割的分享就到这里了 感谢~
标签:
java
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2022-07-08 List 移除元素 报错 java.lang.UnsupportedOperationException