使用guava

 Map<Long, User> maps = Maps.uniqueIndex(userList, new Function<User, Long>() {@Overridepublic Long apply(User user) {return user.getId();}});

使用JDK1.8

Map<Long, User> maps = userList.stream().collect(Collectors.toMap(User::getId,Function.identity()));

JDK 1.8。转换成map的时候,可能出现key一样的情况,如果不指定一个覆盖规则,上面的代码是会报错的。转成map的时候,最好使用下面的方式:

Map<Long, User> maps = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (key1, key2) -> key2));

map的值是对象的某个属性,用下面的方式:

Map<Long, String> maps = userList.stream().collect(Collectors.toMap(User::getId, User::getAge, (key1, key2) -> key2));

JDK1.8 List转Map相关推荐

  1. 记录JDK1.8 List 转 Map 的时候遇到的坑

    今天准备把list转map的时候,遇到一个异常,一直没想通怎么回事. 执行代码的时候是这个异常. 代码: new Thread(() -> {List<Cldict> list = ...

  2. java jdk1.8 List转Map

    这里基本上是可以确认唯一一条记录,才这样做: 使用JDK1.8 Map<Long, User> maps = userList.stream().collect(Collectors.to ...

  3. Java Map集合

    Map集合: Map接口 Map与List.Set接口不同,它是由一系列键值对组成的集合,提供了key到Value的映射.同时它也没有继承Collection.在Map中它保证了key与value之间 ...

  4. Java遍历Map五种方法

    一.Map集合遍历日常开发最常使用,简单总结五种方法差异. ①.Iterator+entrySet写法[推荐JDK8以下],Map.Entry是Map接口的内部接口,获取迭代器,然后依次取出每个迭代器 ...

  5. HashMap 源码

    1.8 阈值 resize()函数 threshold = newThr = (int)(DEFAULT_LOAD_FACTOR * DEFAULT_INITIAL_CAPACITY); 16*0.7 ...

  6. 【代码质量】-阿里巴巴java开发手册(代码质量提升神器)学习笔记

    前言:<阿里巴巴 Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,有了这些前人总结的经验,可以帮助我们写出高质量的代码,同时可以减少Bug数量,少踩坑,提高代码的可读性 ...

  7. 为什么说 HashMap 是无序的

    1. 为什么说 HashMap 是无序的 HashMap 和 HashSet 遍历元素时是无序的,这恐怕是一个常识了,但是你有没有想过为什么是无序的?TreeMap 和 LinkedHashMap 是 ...

  8. Java基础总结(初学者)

    Java基础 java语言 库API(应用程序访问接口) 资产管理 分层思想 面向对象 接口使用 类型转换,转换为什么类型就要在什么类型中定义方法 JDK,JRE,JVM关系? JDK>JRE& ...

  9. Java SE 7 新增特性

    Java SE 7 新增特性 作者:Grey 原文地址: Java SE 7 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new_ ...

  10. HashMap 底层源码细致分析

    JDK集合HashMap 底层源码细致分析 前言 提示:对于初始 HashMap 的小伙伴来说,不推荐直接硬啃,建议先看一下如下几个视频教程之后再回头好好理解.(一遍看不懂则反复看,一小块一小块的找对 ...

最新文章

  1. php preg_match 只匹配第一个字符_PHP正则表达式核心技术完全详解 第12节知识补充 断言匹配
  2. android中PreferencesActivity的使用(一)
  3. java序列化和RMI
  4. 互联网或将进入泡沫2.0时代
  5. oracle定时器定时删除30天前的数据_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...
  6. STM32开发 -- UCOSII
  7. [solr] - solr5.2.1环境搭建 - 使用solr自带的jetty服务器
  8. Angular单元测试框架里API toHaveBeenCalledTimes的工作原理
  9. [转]每秒处理10万订单乐视集团支付架构
  10. 将GPIO外设挂到Cortex_M3 AHB总线上详细流程扩展外设步骤总结
  11. linux编辑文件命令 vi_Linux的vi编辑器
  12. gdb学习汇编(三)
  13. wamp2.2c集成环境搭建网站问题总结
  14. matlab模糊闭包,基于matlab的模糊聚类分析
  15. python中、函数定义可以不包括以下一对圆括号_在python中,参数在函数定义的圆括号对内指定,用分号分割...
  16. 网络基础该从哪开始补?这36张图,一次性理清
  17. doctrine 关系
  18. 【R语言技巧】apply篇 sumNotes
  19. 最美的时光在飞逝,为什么还在努力的路上蹒跚?
  20. USB电路EMC设计标准电路详解

热门文章

  1. Java设计模式及类图
  2. DOM DEM DLG DRG之间的区别
  3. ECLIPSE软件安装MyBatis插件 MyBatis Generator
  4. 手机号、身份证格式校验
  5. 自底向上和自顶向下的区别
  6. office :word ppt excel 取消加载 有道翻译,有道云笔记插件
  7. 基于FPGA的SDRAM控制器设计(4)
  8. vga焊接线顺序_VGA线的焊接方法,15线与7线分别如何焊接?
  9. iOS 播放系统提示音和震动
  10. 在家如何下载nature中的文献