java如何将大的集合拆分成指定大小的小集合

 时间:2024-10-13 07:12:01

1、我们首先创建一个叫做ListDeal的工具类来完成这个需求

java如何将大的集合拆分成指定大小的小集合

2、首先确定方法的返回值为List<List<T>>,方法的参数为List<T> resList,int countT是泛型,resList是源集合,count是分割出来的小集合中每个集合所应包含的元素个数

java如何将大的集合拆分成指定大小的小集合

3、首先该方法逻辑的第一部分,使用卫语句来防止源集合为null或者长度为0

java如何将大的集合拆分成指定大小的小集合

4、方法的第二部分为创建一个结果集合ret,然后判断源集合的长度是否小于给定的参数count,如果小于直接将源集合放入结果集合ret中即可

java如何将大的集合拆分成指定大小的小集合

5、第四部分为根据count对集合进行切割,注意如果切完之后还有剩余的元素,将其直接放入结果集ret中

java如何将大的集合拆分成指定大小的小集合

6、接下去是完整的方法/** * 拆分集合 涯箨唁峦* @param <T> * @param resList 要拆分的集合 * @param count 每个集合的元素个剞麽苍足数 * @return 返回拆分后的各个集合 */ public static <T> List<List<T>> split(List<T> resList,int count){ if(resList==null ||count<1) return null ; List<List<T>> ret=new ArrayList<List<T>>(); int size=resList.size(); if(size<=count){ //数据量不足count指定的大小 ret.add(resList); }else{ int pre=size/count; int last=size%count; //前面pre个集合,每个大小都是count个元素 for(int i=0;i<pre;i++){ List<T> itemList=new ArrayList<T>(); for(int j=0;j<count;j++){ itemList.add(resList.get(i*count+j)); } ret.add(itemList); } //last的进行处理 if(last>0){ List<T> itemList=new ArrayList<T>(); for(int i=0;i<last;i++){ itemList.add(resList.get(pre*count+i)); } ret.add(itemList); } } return ret; }

java如何将大的集合拆分成指定大小的小集合

7、因为最常用的集合为ArrayList,所以写了一个ArrayList的重载方法,方便直接使用import java.util.ArrayL足毂忍珩ist;import java.util.List;public class ListDeal { /** * 拆分集合 * @param <T> * @param resList 要拆分的集合 * @param count 每个集合的元素个数 * @return 返回拆分后的各个集合 */ public static <T> List<List<T>> split(List<T> resList,int count){ if(resList==null ||count<1) return null ; List<List<T>> ret=new ArrayList<List<T>>(); int size=resList.size(); if(size<=count){ //数据量不足count指定的大小 ret.add(resList); }else{ int pre=size/count; int last=size%count; //前面pre个集合,每个大小都是count个元素 for(int i=0;i<pre;i++){ List<T> itemList=new ArrayList<T>(); for(int j=0;j<count;j++){ itemList.add(resList.get(i*count+j)); } ret.add(itemList); } //last的进行处理 if(last>0){ List<T> itemList=new ArrayList<T>(); for(int i=0;i<last;i++){ itemList.add(resList.get(pre*count+i)); } ret.add(itemList); } } return ret; } /** 按指定大小,分隔集合,将集合按指定大小拆开 * @param <T> * @param resList 要拆分的集合 * @param count 每个集合的元素个数 * @return 返回拆分后的各个集合 */ public static ArrayList<List<String>> split(ArrayList<String> list, int len) { if (list == null || list.size() == 0 || len < 1) { return null; } ArrayList<List<String>> result = new ArrayList<List<String>>(); int size = list.size(); int count = (size + len - 1) / len; for (int i = 0; i < count; i++) { List<String> subList = list.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1))); result.add(subList); } return result; }}

java如何将大的集合拆分成指定大小的小集合
  • 喜马拉雅如何设置自动打开字幕/歌词
  • 扇贝阅读要怎么设置标注大纲词汇?
  • jquery 怎样取出hidden的值
  • C# asp.net 如何引用Javascript
  • inside怎么读百度翻译
  • 热门搜索
    关于植物的手抄报 初一数学手抄报图片 动物世界手抄报 我爱我校手抄报内容 大手拉小手手抄报 交通安全的手抄报 生活中的小窍门手抄报 初中数学手抄报图片 夏洛的网手抄报 英语手抄报内容大全