关于java Stream流将list集合分组之后与原list的集合的顺序不一致的问题
问题:在将list集合按照某个或某几个字段分组之后,map中key的顺序与原来list的顺序不一致,导致需要按顺序进行字段匹配时出现了错误
// 按照原本的分组---所得的map是无序的Map<String, List<ShiQc>> map = shiQcList.stream().collect(Collectors.groupingBy(m -(m.getApplyName() + m.getIdCode())));
// 利用treeMap有序的特性Map<String, List<ShiQc>> map = shiQcList.stream().collect(Collectors.groupingBy(m -> (m.getApplyName() + m.getIdCode()), TreeMap::new, Collectors.toList()));
之前的代码中没有去注意利用这个方法分组的顺序问题,直接用分完组的集合就行,要求并不严谨。
要求描述:
这次需要将查到的list导出,并且得按照对象的某两个属性为唯一识别性:因为项目中有封装好的表格样式及导出方法,所以不需要自己写导出代码,但是这样我没办法判断list中哪些对象是属于同一个主体。我先取到已经创建好的workbook,然后利用分组去判断workbook中哪几行是属于一个主体的,并把对应的单元格合并。
问题描述:
因为先创建了workbook并且已经把查到的list集合都已经赋值到表格上,所以如果分完组的map是无序的话,利用分组去对应workbook上每行单元格的数据就会不一样,导致合并错了单元格。
解决:
原本分组默认的是hashMap接收,所以在分组的时候,第二个参数传treeMap过去,根据treeMap接收。
关于java Stream流将list集合分组之后与原list的集合的顺序不一致的问题相关推荐
- java Stream 流
java Stream 流 Stream 流 流的创建 流的转化 Optianal 流的计算 Stream 流 1. Stream的定义 来自数据源的支持聚合操作的元素序列. 即一个流对外提供接口,接 ...
- Java stream流式计算详解
Java stream流式计算详解 1. Stream概述 1.1 Stream简介 1.2 Stream分类 2. Stream操作 2.1 Stream创建 2.2 Stream无状态操作 2.3 ...
- Java Stream流基础
Java Stream流基础 何为Steam流? Stream 是对集合数组对象功能的增强,其专注于对集合数组对象进行各种非常便利.高效的聚合操作,或者大批量数据操作.通常我们需要多行代码才能完成的操 ...
- 测试Java Stream流 parralle与 sequential的效率
测试Java Stream流 parralle与 sequential的效率 实验环境 操作系统:win10 处理器:Intel i5-4200U 2核4线程 Java版本:1.8 实验方案 统计大小 ...
- Java Stream流之求和
Java Stream流之求和 流方式实现 基本数据类型 和 包装类型 的一位数组求和 package top.yangbocsu;import java.util.Arrays;/*** @auth ...
- java stream流_Java-8-流(1)
Java-8-流(1) 外部迭代与内部迭代 Java 程序员在使用集合类时,一个通用的模式是在集合上进行迭代,然后处理返回的每一 个元素 在数字集合里面统计大于100的数有几个 public 尽管这样 ...
- 深度掌握 Java Stream 流操作,让你的代码高出一个逼格
概念 Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选.排序.聚合等. Stream` 的操作符大体上分为两种:`中间操作符`和`终止操 ...
- 这个方法可以让你的代码高出一个逼格——掌握 Java Stream 流操作
概念 Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选.排序.聚合等. Stream` 的操作符大体上分为两种:`中间操作符`和`终止操 ...
- 优雅代码的秘密,只因为我掌握了Java Stream 流操作
概念 Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选.排序.聚合等. Stream` 的操作符大体上分为两种:`中间操作符`和`终止操 ...
- Java Stream流的使用
Stream流--Java8新特性之一 用于处理集合,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找.过滤和映射数据等操作. Java Steam的操作是基于集合的.Steam的操作可以分为 ...
最新文章
- 鉴智机器人高薪诚聘 | 3D视觉、SLAM、SLAM/VIO融合定位算法工程师等多个岗位
- 【JavaWeb】Access restriction The type is not accessible due to restriction on required library
- Spring基于配置方式实现自定义条件装配
- python 论坛模板_python模板 - PH的个人空间 - OSCHINA - 中文开源技术交流社区
- 前端学习(2801):传递id
- 百度编辑器的初步使用
- 做自媒体的目的是让人记住你
- 机器狗vs警犬!在波士顿动力面前,真狗只能“战术撤退”
- mysql - binlog主从复制
- 机器学习面试题目整理
- leapmotion 控制面板的启动
- STC学习:可同步显示歌词的ABC英文歌
- 必须收藏的文档:IronPython脚本在TIBCO Spotfire中的使用
- Java-RPC通信--HSF框架
- 面试被问“红黑树”,我一脸懵逼......
- java编程思想之并发(线程之间的协作)
- STM32CubeMX:中断函数例题:2021-08-03
- 杨百翰大学计算机科学,杨百翰大学
- 麓言科技CAD制图技巧
- [下载]《SAP R/3 IDES 4.71 中文版》