用AIDE怎么建设网站,兰州发布紧急通知,网站建设运营企划案,博客导航wordpress日常中需要对一个大的集合进行拆分成多个小集合#xff0c;其主要思路为#xff1a;
设置需要拆分多少个小集合 A大集合里面有多少条数据 B计算出每个集合里面有多个条数据 CB/A计算出看是否存在余数 DB%A采用集合(List.subList())的方法对大集合进行拆分,循环A变进行集合拆…日常中需要对一个大的集合进行拆分成多个小集合其主要思路为
设置需要拆分多少个小集合 A大集合里面有多少条数据 B计算出每个集合里面有多个条数据 CB/A计算出看是否存在余数 DB%A采用集合(List.subList())的方法对大集合进行拆分,循环A变进行集合拆分(List.subList((A-1)*C,(A-1)*C(C-1))如果存在余数D则需要将剩余的数据放在一个集合中 (List.subList((AC,ACD)
代码如下 /*** 集合切分(将一个1002大小的集合拆分为5个小集合)* param list 目标集合* param partitionSize 需要拆分集合的个数* param T 泛型对象* return 切分后的总的集合*/public static T ListListT listPartition(ListT list, int partitionSize) {//①如果集合时空的或者初始设置的集合大小小于等于0返回一个新集合if (list.isEmpty() || partitionSize 0) {return new ArrayList();}//②封装最后返回的结果集的集合ListListT listResult new ArrayList();int size list.size();//③如果目标集合的大小小于设置集合的大小将目标集合全部加载到封装结果集中返回结束if (size partitionSize) {listResult.add(list);return listResult;}//④计算出拆分的集合的大小(size 1002, partitionSize 5 partitionNum 200 partitionRemainder2)int partitionNum size / partitionSize;//⑤计算出最后一个拆分集合的大小int partitionRemainder size % partitionSize;for (int a 1; a partitionSize; a) {//⑥对目标集合进行截取 1-1*2001-1*200200-1ListT ts list.subList((a - 1) * partitionNum, ((a - 1) * partitionNum) (partitionNum - 1));listResult.add(ts);}//⑦如果最后一个拆分集合的大小大于0if (partitionRemainder 0) {//⑧对目标集合进行截取 200*5200*52ListT ts list.subList(partitionNum * partitionSize, partitionNum * partitionSize partitionRemainder);listResult.add(ts);}//⑨返回结果集return listResult;}