封装一个方法,用一个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集合分组实现教程的更多相关文章

  1. java通过Stream对list集合分组

    java通过Stream对list集合分组 现在有一个List集合,想对该集合中的数据分组处理,想到java8中的stream,就搞来试试,非常给力!例子如下 1 2 3 4 5 6 7 8 9 10 ...

  2. C#月份和日期转大写和C#集合分组

    //日转化为大写 private static string DaytoUpper(int day, string type) { if (day < 20) { return MonthtoU ...

  3. Java集合分组

    public class Data { private Long id ; private Long courseId ; private String content ; public Long g ...

  4. List集合分组

    var ArticleList = new Services.Data.SearchService().GetArticleBaseList(ref param); IEnumerable<IG ...

  5. java~集合分组groupby的实现

    对于数据聚合来说,分组操作是很常见的,在.net里有lambda和linq,而在java里也有lambda,现在我们来实现对一个集合进行分组. 一 准备工作,有两个类型 @Value class It ...

  6. Java8自定义条件让集合分组

    /** * 将一个指定类型对象的集合按照自定义的一个操作分组: 每组对应一个List.最终返回结果类型是:List<List<T>> * * @param <T> ...

  7. mysql 分组查询教程

    1.分组 分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理. 2.分组的特点 1.)group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组 ...

  8. WPF 集合分组排序

    <Window x:Class="ViewExam.MainWindow"        xmlns="http://schemas.microsoft.com/w ...

  9. List集合分组依据集合中对象的属性

    直接上代码 用到了Spring的BeanWrapper类 public static <T, K> Map<K, List<T>> groupByProperty( ...

随机推荐

  1. springboot with appache sharding 3.1 单库分表

    配置文件相关信息: #开发 server.port=7200 spring.application.name=BtspIsmpServiceOrderDev eureka.client.service ...

  2. OpenGL入门1.6:坐标系统,3D箱子

    每一个小步骤的源码都放在了Github 的内容为插入注释,可以先跳过 前言 我们已经学习了如何利用矩阵变换来对所有顶点进行变换 OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备 ...

  3. ASP.NET Core基于K8S的微服务电商案例实践--学习笔记

    摘要 一个完整的电商项目微服务的实践过程,从选型.业务设计.架构设计到开发过程管理.以及上线运维的完整过程总结与剖析. 讲师介绍 产品需求介绍 纯线上商城 线上线下一体化 跨行业 跨商业模式 从0开始 ...

  4. go-goroutine 和 channel

    goroutine 和 channel goroutine-看一个需求 需求:要求统计 1-9000000000 的数字中,哪些是素数? 分析思路: 1) 传统的方法,就是使用一个循环,循环的判断各个 ...

  5. Python GUI开发,效率提升10倍的方法!

    1 框架简介 这个框架的名字叫 PySimpleGUI,它完全基于Python语言,能非常方便地开发GUI界面,代码量相比现有框架减少50%到90%.并且,它提供了极为友好的Python风格的接口,大 ...

  6. MySQL问题记录——ERROR 1728 (HY000)

    MySQL问题记录——ERROR 1728 (HY000) 摘要:本文主要记录了在使用MySQL的过程中遇到错误代码为1728的问题以及解决方案. 问题重现 在创建自定义函数的时候,出现了问题: my ...

  7. 微软Cloud+AI本地化社区更新

    有关微软Cloud+AI本地化方面的介绍请参见我之前的文章:<微软Cloud+AI本地化社区贡献指南>,本文将公布该社区最新的活动变更事宜. MLCP改进 我们想借此机会向您介绍我们在社区 ...

  8. appium---Android app资源监控

    我们在做app测试的过程中,都会对app内存,cpu这些做一个简单的测试,今天简单的写下如何通过python监控app这些资源变化 实现原理 1.通过adb命令查看app资源内存 2.通过python ...

  9. vue 表格组件 有事件交互(二)

    04==>v-if下面可以嵌套 同级的 v-if 和v-node如下若是第一个v-if没有下面的就不可能显示出来的. <span v-if="!single" @cli ...

  10. c# WF 第9节 button控件

    本节内容: 1:实现实例 1:实现实例 每当点击一个确定就出现一个窗口,当点击最后的确定时,关闭所有的窗口. 实现: 步骤1:对Form 1 -Form3 依次进行如下设置: 步骤2 : 当每点击一个 ...