做婚纱网站的图片素材,湛江免费制作网站,领导高度重视门户网站建设,太原seo计费管理日常开发中#xff0c;经常遇到拆分集合处理的场景#xff0c;现在记录2中拆分集合的方法。
1. 使用Guava包提供的集合操作工具栏 Lists.partition()方法拆分 首先#xff0c;引入maven依赖
dependencygroupIdcom.google.guava/groupIdartifa…日常开发中经常遇到拆分集合处理的场景现在记录2中拆分集合的方法。
1. 使用Guava包提供的集合操作工具栏 Lists.partition()方法拆分 首先引入maven依赖
dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion21.0/version
/dependency 部分源码
public static T ListListT partition(ListT list, int size) {Preconditions.checkNotNull(list);Preconditions.checkArgument(size 0);return (List)(list instanceof RandomAccess ? new Lists.RandomAccessPartition(list, size) : new Lists.Partition(list, size));} Lists.partition方法根据传入的size对list进行拆分
使用Demo public static void main(String[] args) {ListInteger list new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(6);list.add(7);ListListInteger partition Lists.partition(list, 3);partition.forEach(l - System.out.println(JSONObject.toJSONString(l)));
}
2. 自定义集合拆分方法partition
使用List的 subList方法自定义集合拆分 /*** 分割集合** param list 原集合* param count 分割后每个集合大小* return java.util.Listjava.util.ListT**/public static T ListListT partition(ListT list, int count) {ListListT result new ArrayList();int total list.size();int pageSize total % count 0 ? total / count : total / count 1;for (int i 0; i pageSize; i) {int start i * count;int end Math.min((start count), total);ListT ts list.subList(start, end);result.add(ts);}return result;}
使用Demo
public static void main(String[] args) {ListString strList new ArrayList();strList.add(一月);strList.add(二月);strList.add(三月);strList.add(四月);strList.add(五月);strList.add(六月);strList.add(七月);strList.add(八月);strList.add(九月);strList.add(十月);strList.add(十一月);ListListString listList partition(strList, 3);listList.forEach(l - System.out.println(JSONObject.toJSONString(l)));}
输出结果