public static void main(String[] args) {
String a ="a,b,c,d,e,s,d,r,w";
// 转换成LIST
List ll = Arrays.asList(StringUtils.split(a, ",")); ;
// 每次处理数据量
int bathInt = 5;
// 全部人数
int totalNum = ll.size();
// 相除获得轮数 ,正整数
int num = totalNum / bathInt;
// 取余获得最后一轮数量
int lastNum = totalNum % bathInt;
for (int i = 0; i < num; i++) {
List batlist = ll.subList(bathInt * i, (i + 1) * bathInt);
System.out.println(StringUtils.join(batlist,","));
}
// 最后一轮,,只有当余数不是0才会进来。也就是 totalNum > bathInt 并且不会被整除才会进来
if(lastNum != 0){
List batlist = ll.subList(num*bathInt,ll.size());
System.out.println(StringUtils.join(batlist,","));
}
// 假如是对数据库的操作
// for (int i = 0; i <= num; i++) {
// String limitMsg = "limit" + bathInt * i + " , " + bathInt;
// List<BaseHos> hosList = baseHosService.list(Wrappers.<BaseHos>query().lambda().last(limitMsg));
// }
}
大量数据分批处理
于 2022-02-24 14:27:26 首次发布