List集合分组实现教程
2019-06-29 00:19
176 查看
封装一个方法,用一个Map来实现,这里是根据bean类的seq字段进行拆分的,分成好几个list
private LinkedHashMap<String,List<HandleInfo>> groupListBySeq(List<HandleInfo> list) { LinkedHashMap<String,List<HandleInfo>> map = new LinkedHashMap<String,List<HandleInfo>>(); for (HandleInfo bean : list) { if(map.containsKey(bean.getSeq())){ List<HandleInfo> subList = map.get(bean.getSeq()); subList.add(bean); }else{ List<HandleInfo> subList = new ArrayList<HandleInfo>(); subList.add(bean); map.put(bean.getSeq(), subList); } } return map; }
然后可以对获取到的Map进行遍历:
LinkedHashMap<String,List<HandleInfo>> map = groupListBySeq(needUpdateHandleInfoList); //遍历集合 for(Map.Entry<String, List<HandleInfo>> entry : map.entrySet()){ List<HandleInfo> list=(List<HandleInfo>)entry.getValue(); HandleInfo bean0 = new HandleInfo(); if(null != list || !list.isEmpty()){ bean0 = list.get(0); } for(HandleInfo handleInfoModel : list){ ... } }
上面是按数据库字段进行分组的方法,然后介绍一下平均分成多少数据量的集合
java代码只要获取参数进行集合拆分就可以:
举个例子,下面是一种方法,将list按照没1000个为一个集合分组
List<String> values = new ArrayList<String>(); String[] configSeqArray = StringUtils.split(configSeq,','); for (String str : configSeqArray) { values.add(str); } List<Collection<String>> configSeqs = CollectionUtil.splitCollection(values, 1000);
复制公司同事写的集合拆分的方法
import java.util.ArrayList; import java.util.Collection; import java.util.List; public class CollectionUtils { public static List<Collection<String>> splitCollection(Collection<String>values , int size) { List<Collection<String>> result = new ArrayList<Collection<String>>(); if(values.size() <= size ){ result.add(values); }else{ int count =0; Collection<String> subCollection= null; for(String s:c){ if(subCollection == null){ subColletion = new ArrayList<String>(); result.add(subColletion); } subCollection.add(s); count++; if(count == size){ count =0; subCollectiion = null; } } } } }
这种方法可以应用与解决Oracle select in超过1000个的报错,具体参考:https://smilenicky.blog.csdn.net/article/details/87922878
相关文章推荐
- List集合实现分组,获取list中部分数据
- 利用google工具类实现对list集合分组
- 黑马程序员--07.集合框架--04.List实现子类【ArrayList】【LinkedList】【Vector】
- 实现List集合中数据逆序排列
- Java 集合:Collection,List,ArrayList,Vector,LinkedList(实现方式,对比)
- ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口?
- 用javascript实现java中的集合list(后续不断完善优化)
- java中List集合的遍历和两种实现类的比较分析
- java学习笔记—自定义实现linkedList集合
- List 集合分页实现
- 集合_用List实现栈和队列
- List集合的排序实现
- 黑马程序员_集合-List实现类、泛型笔记
- List集合底层实现
- 【Java】List集合按数量分组
- 集合:List实现类Vector
- 2.当形参,返回值类型是JavaBean式的复合类,List集合,数组等时:服务端实现类
- list集合去除重复对象的实现
- jquery实现数组array、集合list、json类型的分页
- 集合框架(用LinkedList实现栈结构的集合代码)