java实现把一个List集合拆分成多个的操作
有些时候我们需要对一批数据进行分批处理,使用subList方法可以实现对List集合进行固定长度的分割.
/* *List分割 */ publicstaticList>groupList(List
list){ List >listGroup=newArrayList
>(); intlistSize=list.size(); //子集合的长度 inttoIndex=2; for(inti=0;i
listSize){ toIndex=listSize-i; } List newList=list.subList(i,i+toIndex); listGroup.add(newList); } returnlistGroup; } publicstaticvoidmain(String[]args){ List list=newArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); list.add("6"); list.add("7"); List >lists=groupList(list); System.out.println("list:"+list.toString()); System.out.println(lists); }
输出结果:
补充知识:java将大集合按照固定长度拆分为小集合
我们在使用java中的集合(Collection、List、Set等)的时候,可能因为某种限制需要将大集合按照固定的长度拆分为N个小的集合。
如:有一个List
如何做呢?网上有不少资料,代码如下:
/** *拆分集合 * *@param泛型对象 *@paramresList需要拆分的集合 *@paramsubListLength每个子集合的元素个数 *@return返回拆分后的各个集合组成的列表 *代码里面用到了guava和common的结合工具类 **/ publicstatic List >split(List
resList,intsubListLength){ if(CollectionUtils.isEmpty(resList)||subListLength<=0){ returnLists.newArrayList(); } List >ret=Lists.newArrayList(); intsize=resList.size(); if(size<=subListLength){ //数据量不足subListLength指定的大小 ret.add(resList); }else{ intpre=size/subListLength; intlast=size%subListLength; //前面pre个集合,每个大小都是subListLength个元素 for(inti=0;i
itemList=Lists.newArrayList(); for(intj=0;j0){ List itemList=Lists.newArrayList(); for(inti=0;i list=Lists.newArrayList(); intsize=1099; for(inti=0;i >temps=split(list,6); intj=0; for(List obj:temps){ System.out.println(String.format("row:%s->size:%s,data:%s",++j,obj.size(),obj)); } } 其实我平日用的更多的是guava框架,它自带了一个方法可以实现上面的集合切割的功能。代码如下:
publicstaticvoidmain(String[]args){ Listlist=Lists.newArrayList(); intsize=1099; for(inti=0;i >rsList=Lists.partition(list,11); inti=0; for(List obj:rsList){ System.out.println(String.format("row:%s->size:%s,data:%s",++i,obj.size(),obj)); } } 推荐大家使用guava的功能,它们都是经过严格的单元测试的代码。
以上这篇java实现把一个List集合拆分成多个的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。