例如:

public class User {private Integer id;private String name;public User(Integer id, String name) {this.id = id;this.name = name;}
}

把User集合转成key ->id ,value->User对象的map
1.最原始方法

        List<User> list = new ArrayList<>();list.add(new User(1,"a"));list.add(new User(2,"b"));HashMap<Integer, User> map = new HashMap<>();for (User u:list) {map.put(u.getId(),u);}

2.stream流式操作

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

3.stream流简化操作(推荐)

Map<Integer, User> map2 = list.stream().
collect(Collectors.toMap(User::getId, Function.identity()));

4.hutool工具类(推荐)

Map<Integer, User> map3 = CollStreamUtil.toIdentityMap(list, User::getId);

输出结果

第一种:{1=User(id=1, name=a), 2=User(id=2, name=b)}
第二种:{1=User(id=1, name=a), 2=User(id=2, name=b)}
第三种:{1=User(id=1, name=a), 2=User(id=2, name=b)}
第四种:{1=User(id=1, name=a), 2=User(id=2, name=b)}

java 集合对象转map的几种方式(stream流)相关推荐

  1. Java中对象转换为字符串的几种方式

    一.(String)强制类型转换 使用这种方法时,需要注意的是类型必须能转成String类型.因此最好用instanceof做个类型检查,以判断是否可以转换.否则容易抛出CalssCastExcept ...

  2. java集合(List,Set,Map)详细总结

    一,集合的由来: 数组是长度是固定的,当添加的元素超过数组的长度时需要对数组重新定义,太麻烦了,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而 ...

  3. java map 迭代遍历_java 遍历Map的四种方式

    java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1.方 ...

  4. java集合课程,I学霸官方免费课程三十三:Java集合框架之Map集合

    I学霸官方免费教程三十三:Java集合框架之Map集合 Map接口 Map集合采用键值对(key-value)的方式存储数据,其中键不可以重复.值可以重复. 常用类有HashMap.TreeMap和P ...

  5. java 集合之Interface Map<K,V> HashMap实现类

    java 集合之Interface Map<K,V> 类型参数:K- 此映射所维护的键的类型:V- 映射值的类型 将键映射到值的对象. 一个映射不能包含重复的键: 每个键最多可以映射到一个 ...

  6. java 遍历map key_java 遍历Map的四种方式

    java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1.方 ...

  7. java解析遍历List集合(其实现子类)的三种方式

    java解析遍历List集合(其实现子类)的三种方式 1 使用迭代器对象 1.1 底层 1.1.1 List接口继承了Collection接口 1.1.2 而Collection接口又继承了Itera ...

  8. Java 遍历 Map 的几种方式

      在 Java 中遍历 Map 有多种方法,既然 Java 中的所有 map 都实现了 Map 接口,以下方法适用于任何 map 实现(HashMap,TreeMap,LinkedHashMap,H ...

  9. Java遍历Map的五种方式

    一.遍历Map的五种方式 java中遍历map一般有五种方法,从最早的Iterator,到java5支持的foreach,再到java8的Lambda表达式. 如果只是获取key,或者value,推荐 ...

  10. map容器对象插入数据的4种方式讲解

    map容器对象插入数据的4种方式讲解 map容器对象插入数据的4种方式 #include <string> #include <iostream>  #include < ...

最新文章

  1. 【董天一】IPFSFilecoin和复制证明
  2. 《为什么我们的决策总出错》摘录
  3. kettle安装部署及远程执行
  4. 多线程(十、AQS原理-ReentrantLock公平锁)
  5. Windows server 2003下Oracle10g安装图解
  6. mysql视频教程siki_siki老师MySQL数据库从零到精通,资源教程下载
  7. Windows Phone 7 开发 31 日谈——第22日:应用?还是 游戏?
  8. quartus管脚分配后需要保存吗_嵌入式必须会的一些硬件面试题,要试一试吗?你过来呀!...
  9. TensorFlow HOWTO 1.1 线性回归
  10. 5 questions
  11. IE6/7下不同的inline-block
  12. 【音乐拼接】WAV格式
  13. msfconsole理论
  14. ios免越狱自签工具
  15. three相机在模型上_threejs学习心得(场景的搭建+运动模型导入)
  16. 计算机专业硕士论文评语,硕士论文评审意见范文
  17. 2021-2027全球与中国物联网网关设备市场现状及未来发展趋势
  18. 基于FPGA的ASCII码日期转时间戳算法实现
  19. D-HARRY2020春夏新品
  20. MQ(二)RabbitMQ快速入门

热门文章

  1. html 倒计时 插件,jquery.jcountdown.js倒计时插件(推荐)
  2. 前端实现拖动滑块完成验证
  3. OCR识别发票扫描仪解决方案
  4. 计算机算法实验报告二——递归
  5. iOS修改手游服务器数据,IOS免越狱游戏存档修改教程】成长王国Grow Kingdom为例
  6. 安卓APK反编译详解(多图)
  7. windows station和desktop
  8. 虚拟服务器软件哪个好,虚拟机软件哪个好?热门虚拟机软件推荐
  9. ae编程语言as_18种常用AE表达式解析
  10. GBase 8s 常用管理员命令汇总-onstat(下)