{{format('0')}} {{format('248')}} {{format('1426')}}

Stream流 | 根据Collectors.toMap收集自身对象 [ 技术杂谈 ]

九叶的小窝 文章 正文

As Long As You Love Me.
分享

九叶

{{nature("2021-12-06 14:45:25")}}更新

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 根据 conclusionNoexplain 将其转成 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

评论 0
0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}
TOP 2
Minecraft | [1.12.2] 核电工艺模拟器 1.2.25 —— 汉化版

{{nature('2021-12-07 15:29:00')}} {{format('2500')}}人已阅读

TOP 3
SSM搭建Spring单元测试环境

{{nature('2021-01-31 20:01:00')}} {{format('1065')}}人已阅读

TOP 4
dispatcher-servlet.xml文件配置模板

{{nature('2020-12-11 21:17:00')}} {{format('980')}}人已阅读

TOP 5
Windows平台Nacos启动报错无法创建Bean实例

{{nature('2021-04-22 15:16:00')}} {{format('957')}}人已阅读

目录

标签云

Java

一言

# {{hitokoto.data.from || '来自'}} #
{{hitokoto.data.hitokoto || '内容'}}
作者:{{hitokoto.data.from_who || '作者'}}
自定义UI
配色方案

侧边栏