问题:在将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的集合的顺序不一致的问题相关推荐

  1. java Stream 流

    java Stream 流 Stream 流 流的创建 流的转化 Optianal 流的计算 Stream 流 1. Stream的定义 来自数据源的支持聚合操作的元素序列. 即一个流对外提供接口,接 ...

  2. Java stream流式计算详解

    Java stream流式计算详解 1. Stream概述 1.1 Stream简介 1.2 Stream分类 2. Stream操作 2.1 Stream创建 2.2 Stream无状态操作 2.3 ...

  3. Java Stream流基础

    Java Stream流基础 何为Steam流? Stream 是对集合数组对象功能的增强,其专注于对集合数组对象进行各种非常便利.高效的聚合操作,或者大批量数据操作.通常我们需要多行代码才能完成的操 ...

  4. 测试Java Stream流 parralle与 sequential的效率

    测试Java Stream流 parralle与 sequential的效率 实验环境 操作系统:win10 处理器:Intel i5-4200U 2核4线程 Java版本:1.8 实验方案 统计大小 ...

  5. Java Stream流之求和

    Java Stream流之求和 流方式实现 基本数据类型 和 包装类型 的一位数组求和 package top.yangbocsu;import java.util.Arrays;/*** @auth ...

  6. java stream流_Java-8-流(1)

    Java-8-流(1) 外部迭代与内部迭代 Java 程序员在使用集合类时,一个通用的模式是在集合上进行迭代,然后处理返回的每一 个元素 在数字集合里面统计大于100的数有几个 public 尽管这样 ...

  7. 深度掌握 Java Stream 流操作,让你的代码高出一个逼格

    概念 Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选.排序.聚合等. Stream` 的操作符大体上分为两种:`中间操作符`和`终止操 ...

  8. 这个方法可以让你的代码高出一个逼格——掌握 Java Stream 流操作

    概念 Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选.排序.聚合等. Stream` 的操作符大体上分为两种:`中间操作符`和`终止操 ...

  9. 优雅代码的秘密,只因为我掌握了Java Stream 流操作

    概念 Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选.排序.聚合等. Stream` 的操作符大体上分为两种:`中间操作符`和`终止操 ...

  10. Java Stream流的使用

    Stream流--Java8新特性之一 用于处理集合,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找.过滤和映射数据等操作. Java Steam的操作是基于集合的.Steam的操作可以分为 ...

最新文章

  1. 鉴智机器人高薪诚聘 | 3D视觉、SLAM、SLAM/VIO融合定位算法工程师等多个岗位
  2. 【JavaWeb】Access restriction The type is not accessible due to restriction on required library
  3. Spring基于配置方式实现自定义条件装配
  4. python 论坛模板_python模板 - PH的个人空间 - OSCHINA - 中文开源技术交流社区
  5. 前端学习(2801):传递id
  6. 百度编辑器的初步使用
  7. 做自媒体的目的是让人记住你
  8. 机器狗vs警犬!在波士顿动力面前,真狗只能“战术撤退”
  9. mysql - binlog主从复制
  10. 机器学习面试题目整理
  11. leapmotion 控制面板的启动
  12. STC学习:可同步显示歌词的ABC英文歌
  13. 必须收藏的文档:IronPython脚本在TIBCO Spotfire中的使用
  14. Java-RPC通信--HSF框架
  15. 面试被问“红黑树”,我一脸懵逼......
  16. java编程思想之并发(线程之间的协作)
  17. STM32CubeMX:中断函数例题:2021-08-03
  18. 杨百翰大学计算机科学,杨百翰大学
  19. 麓言科技CAD制图技巧
  20. [下载]《SAP R/3 IDES 4.71 中文版》

热门文章

  1. yum安装zabbix包失败问题
  2. vscode设置鼠标滚轮滚动 翻页速度
  3. 安装Office时提示error 1706错误解决办法
  4. windows创建bat文件进行截图
  5. 辞职信 求助编辑百科名片
  6. 一阶系统和二阶系统动态响应分析
  7. 三极管实现的锁存电路
  8. 简单家乡风景静态HTML网页设计作品 DIV布局家乡介绍网页模板代码-家乡佛山
  9. 土方回填施工方案范本_外购土方回填施工方案
  10. 如何录制游戏视频中的音频