List集合分组实现教程

网友投稿 670 2022-11-04

List集合分组实现教程

List集合分组实现教程

封装一个方法,用一个Map来实现,这里是根据bean类的seq字段进行拆分的,分成好几个list

private LinkedHashMap> groupListBySeq(List list) { LinkedHashMap> map = new LinkedHashMap>(); for (HandleInfo bean : list) { if(map.containsKey(bean.getSeq())){ List subList = map.get(bean.getSeq()); subList.add(bean); }else{ List subList = new ArrayList(); subList.add(bean); map.put(bean.getSeq(), subList); } } return map; }

然后可以对获取到的Map进行遍历:

LinkedHashMap> map = groupListBySeq(needUpdateHandleInfoList);//遍历集合for(Map.Entry> entry : map.entrySet()){ List list=(List)entry.getValue(); HandleInfo bean0 = new HandleInfo(); if(null != list || !list.isEmpty()){ bean0 = list.get(0); } for(HandleInfo handleInfoModel : list){ ... } }

上面是按数据库字段进行分组的方法,然后介绍一下平均分成多少数据量的集合

java代码只要获取参数进行集合拆分就可以:

举个例子,下面是一种方法,将list按照没1000个为一个集合分组

List values = new ArrayList();String[] configSeqArray = StringUtils.split(configSeq,',');for (String str : configSeqArray) { values.add(str);}List> configSeqs = CollectionUtil.splitCollection(values, 1000);

复制公司同事写的集合拆分的方法

import java.util.ArrayList;import java.util.Collection;import java.util.List;public class CollectionUtils { public static List> splitCollection(Collectionvalues , int size) { List> result = new ArrayList>(); if(values.size() <= size ){ result.add(values); }else{ int count =0; Collection subCollection= null; for(String s:c){ if(subCollection == null){ subColletion = new ArrayList(); result.add(subColletion); } subCollection.add(s); count++; if(count == size){ count =0; subCollectiion = null; } } } }}

这种方法可以应用与解决Oracle select in超过1000个的报错

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:swoole+yaf,使用php的swoole扩展与yaf扩展编写的高性能web框架
下一篇:Http接口调用示例教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~