Collections.toMap作用

将list按照规则转成map。

books.stream().collect(Collectors.toMap(Book::getIsbn, Book::getName));

存在的各种坑
空指针
key值重复

空指针 & key重复

重复key 后边会覆盖前边的值

描述问题:当value为null的时候会抛出异常(Book::getName)

Map<Integer, Boolean> collect = list.stream().collect(HashMap::new, (m,v)->m.put(v.getId(), v.getAnswer()), HashMap::putAll);

点赞最高的解决方案,其实跟你手动foreach一毛一样。
https://stackoverflow.com/questions/24630963/java-8-nullpointerexception-in-collectors-tomap

只key值重复 解决

如果说key值一样也会报错,需要调用它的另一个函数:

public static void main(String[] args) {List<ContentAnnouncement> list = new ArrayList<>();Map<String, String> map = list.stream().collect(Collectors.toMap(ContentAnnouncement::getTitle, ContentAnnouncement::getAnnouncement, (e1, e2) -> e1));map.forEach((key, value) -> System.out.println(key + " " + value));}

(e1, e2) -> e1)这个是如果出现重复key一样,会只保存之前的value,后面的都去掉

Collections.toMap 报错 空指针 key重复相关推荐

  1. mysql 报错 Specified key was too long; max key length is 767 bytes,开启系统变量:innodb_large_prefix

    mysql 报错 Specified key was too long; max key length is 767 bytes 当mysql数据库的字符集使用了utf8mb4,就很容易在执行建表sq ...

  2. eclipse spring mysql,eclipse环境下的springboot框架+mybatis访问MySQL报错空指针

    "/")public classTestController { @RequestMapping("/login")publicString login() { ...

  3. KEIL 不使用microlib 报错__stdin __stdout重复定义

    keil不使用microlib,在文件中添加如下函数,重定向printf void _sys_exit(int x) { x = x; } FILE __stdout; FILE __stdin; i ...

  4. android报错空指针_Android空指针的问题。。

    ============问题描述============ android 空指针搞了二天了,还是没找到错误,知道那里报空指针但不知道怎么改 有空的哥们帮帮忙qq517835354 报错代码: Gast ...

  5. postgres 保存报错duplicate key value violates unique constraint...解决方案_亲测有效

    postgres 保存报错duplicate key value violates unique constraint 解决方案 原因分析: 表名: A 表A的主键id 是由序列 x$seq 生成的 ...

  6. linux centos7 yum 报错 Public key for *.rpm is not installed 解决方法

    报错信息: [root@localhost backup]# yum -y install net-snmp Loaded plugins: fastestmirror Repository base ...

  7. sshpass报错Host key verification failed

    通过sshpass命令执行从本地A服务器复制数据库文件到B服务器上. # sshpass -p 'a@123456' scp -P 22 /home/data.sql.gz root@10.0.0.2 ...

  8. 使用mybatisplus自动生成实体类对象报错configuration key ‘file.resource.loader.unicode‘ has been deprecated in favo

    报错信息 [09:41:49.180] [WARN ] [main] [org.apache.velocity.deprecation] [configuration key 'file.resour ...

  9. mysql 8.0 解决报错Public Key Retrieval is not allowed

    项目中数据库mysql从5.7升到8.0后启动报错:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not a ...

最新文章

  1. R语言数据结构之数据框
  2. python mqtt tls_python mqtt使用
  3. 机器学习实战 | 意大利Covid-19病毒感染数学模型及预测(附代码)
  4. LeetCode 64. 最小路径和(DP)
  5. 如何使用API提交转码任务?
  6. 前端基础-html-路径的介绍
  7. Console.log对象显示
  8. nvm 和 nrm 的安装与使用
  9. PHP连接MongoDB
  10. 【数据仓库与OLAP技术】期末复习+考题
  11. Qt VS Tools插件官方下载及安装
  12. android 连接本地设备,从USB连接的Android移动设备访问PC的本地主机
  13. 多层感知机的从零开始实现( 从D2L 包中抽取函数)
  14. 黑客攻击欧洲港口石油设施致油价飙升、上海首份《企业数据合规指引》出台、微软计划收购网络安全公司|网络安全周报
  15. 项目经理在团队不同阶段的领导风格
  16. 微信“小程序”来了,短期不可高估,长期不可低估
  17. Ls-Dyna 软件简介 (1)
  18. 进阶实验 2-3.1 海盗分赃(25 分)
  19. C语言 详解如何编写闪烁显示字符串的函数
  20. [Digital IC]RFID文献笔记

热门文章

  1. java在线编译器_什么是Java内存模型
  2. docker快速搭建RabbitMQ集群
  3. linux双系统重装win7系统下载,Windows与Ubuntu双系统重装WIN7后修复Grub2
  4. SpringBoot项目redis的消息队列
  5. bp神经网络代码_精通数据科学笔记 神经网络
  6. java导出oracle到excel_java实现将oracle表中的数据导出到excel表里
  7. Appium 与 Chromedriver
  8. 华为新机搭载鸿蒙os,华为5G巅峰之作:2K超清屏幕+鸿蒙OS2.0+3D结构光 颜值与性能并存...
  9. pom文件报错_解决mac下tess4j文字识别报错问题
  10. python分位数回归模型_如何理解分位数回归风险价值 (VaR) 模型?