Loading... #### 1. 描述 日常开发中我们通常会想将 `List` 集合根据某个成员变量为 `key` 值将其转成 `Map` 集合,如下: ``` package com.wanlingyun.slhospital.patient.entity; @Data public class Conclucion { private String type; private String conclusionNo; //原始分 private String conclusion; //T分 private String tConclusion; private String name; private String explain; } ``` 有一个封装上面实体的 `List` 集合,现在有下面两个需求: 假设 `list` 里面存了一些数据 ``` List<Conclucion> list = new ArrayList<>(); ``` #### 2. 几种用法 ###### 2.1 根据 `conclusionNo` 和 `explain` 将其转成 `Map` 集合 ``` Map<String, Conclucion> groupConclusion = conclusion.stream() .collect(Collectors.toMap(con -> con.getConclusionNo(), con -> con.getExplain())); ``` ``` Map<String, Conclucion> groupConclusion = conclusion.stream() .collect(Collectors.toMap(Conclusion::getConclusionNo, Conclusion::getExplain)); ``` ###### 2.2.1 根据 `conclusionNo` 和 `对象本身` 转成 Map 集合 ``` Map<String, Conclucion> groupConclusion = conclusion.stream() .collect(Collectors.toMap(con -> con.getConclusionNo(), con -> con)); ``` ``` Map<String, Conclucion> groupConclusion = conclusion.stream() .collect(Collectors.toMap(Conclusion::getConclusionNo, Function.identity())); ``` ###### 2.2.2 Tip: 这里的 `Function.identity()` 等价于第一个方法的 `con -> con`,就是将对象自己返回。 ![image.png](https://old.qwq.ro/usr/uploads/2021/12/4269548596.png) Last modification:December 6, 2021 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 感谢大佬投喂 啾咪~