stream流转toMap的使用以及Key重复的解决
1.如何将一个List转为map,并指定map的key和value?
- 首先通过.stream()将List转为流,然后通过终止操作方法collect将流转化为其他形式,接收一个Collector接口的实现,用于给Stream中元素做汇总的方法;通过toMap把流中的元素收集到Map中。toMap中有两个参数,第一个用来设定Key,第二个用来设定value。
- 这里就是调用OperationUnitVO这个对象里面的getOuCode方法,来获取到ouCode值设为Key;设置value同理
List<OperationUnitVO> dbOus = commonRepository.selectOuByCodes(userDetails.getTenantId(), ouCodes);
Map<String, Long> ouIdAndOuCodeMap = dbOus.stream().collect(Collectors.toMap(OperationUnitVO::getOuCode, OperationUnitVO::getOuId));
2.toMap时设定的key有重复怎么办?
- 一般toMap时只用到两个参数,第一个设定Key,第二个设定value。但如果Key重复的话,那就需要用到第三个参数,可以这么写(v1, v2)-> v1。什么意思呢,就是说如果v1和v2的key都相同,那么只取v1的值去覆盖之前的值,也可以改为取v2的值,这样就解决了duplicate key的问题
List<ItemVO> itemVos = commonRepository.selectItemByOuCodes(userDetails.getTenantId(), ouCodes);Map<String, Long> itemNumAndItemIdMap = itemVos.stream().collect(Collectors.toMap(ItemVO::getItemNumber, ItemVO::getItemId, (v1, v2) -> v1));
stream流转toMap的使用以及Key重复的解决相关推荐
- Collections.toMap 报错 空指针 key重复
Collections.toMap作用 将list按照规则转成map. books.stream().collect(Collectors.toMap(Book::getIsbn, Book::get ...
- java.lang.IllegalStateException: Duplicate key 【java8 toMap(key重复如何解决)】
使用stream的toMap()函数时,当key重复,系统会报错相同的key不能形成一个map,那么需要解决这个问题, 1.首先查看库中数据结构,相同人员编号存在多条关键词(arr_gic) List ...
- java8 toMap(key重复如何解决)
使用stream的toMap()函数时,当key重复,系统会报错相同的key不能形成一个map,那么需要解决这个问题,一:相同key的情况下,丢弃重复的只保留一个,二:相同key的情况下,把value ...
- mysql primary key 多个_关于mysql中primary key重复的解决方法
我们都知道MySQL数据库中是讲究primarykey的唯一性的,如果primarykey出现了重复,则会影响其他的表制定的规则. 今天我们要和大家一起分享的是Mysql数据库中primarykey重 ...
- JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)
测试又报bug啦 接到测试小伙伴的问题,说是一个接口不返回数据了,好吧,虽然不是我写的接口任务落到头上也得解决,本地调试了一下,好家伙,直接抛了个异常出来,这又是哪位大哥喝醉了写的代码... Exce ...
- Java8中stream()操作toMap()时Duplicate key问题解决
问题描述: 最近使用Java8中Steam()流进行tomap转换编程时,遇到以下错误 java.lang.IllegalStateException: Duplicate key bbbat jav ...
- JDK8中Collectors.toMap方法报Duplicate key xxx错误信息
两种 list转map方式 方式一:这种方式 重复key的话会报错 Duplicate key xxx Map deviceDtoMap = JsonUtils.toList(deviceDtoLis ...
- JDK8中Collectors.toMap方法报Duplicate key xxx错误信息
今天在使用JDK8中的Collectors.toMap()方法报错,错误信息是Duplicate key xxx,很明显是因为key重复造成的,此时通过使用Collectors.toMap()的重载方 ...
- java8 对象转map时重复key Duplicate key 该如何解决?
我们在利用java8 Lambda 表达式将集合中对象的属性转成Map时就会出现 Duplicate key xxxx , 说白了也就是key 重复了!案例如下: @Data @NoArgsCon ...
- Stream中toMap引发NullPointerException____Stream的执行流程
Stream中toMap引发NullPointerException 1.引发NullPointerException的代码如下: List<SelfSettlementCardInfoDto& ...
最新文章
- ubuntu 16.04下安装oracle jdk 1.7
- aapt: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64
- Java 虚拟机诊断利器
- Nun Heh Heh Aaaaaaaaaaa 字符串,dp
- 手写简版spring --8--Aware感知容器对象Aware感知容器对象
- GDI+绘制极坐标图(Polar Diagram)
- BZOJ1857:[SCOI2010]传送带——题解
- Kubernetes的Device Plugin设计解读
- 【算法】剑指 Offer 12. 矩阵中的路径
- puppet连载15:搭建zabbix服务端、客户端
- php的$符的作用,PHP引用符的用法举例
- 异或运算符 判断奇偶
- 在html中加入滚动条,html滚动条 textarea属性设置
- CesiumJS 中文学习手册
- python9行代码_如何用9行Python代码编写一个简易神经网络
- libGDX的启动类和配置
- java执行sql列名无效_sqlserver列名无效调试及解决方法
- 以太坊白皮书[中文]
- 多代理区块链框架客户端的操作
- 手机POS机支付能否挑战支付宝、微信?