用stream流将list转为map

news/2024/7/8 3:09:33

用stream流将list转为map

1、将list转为Map<Long, List>

按照spaceId分组,spaceId相同的为一组数据:

List<BasEvaluationPriceResultDto> list = new ArrayList();
Map<Long, List<BasEvaluationPriceResultDto>> priceResultDtoMap = list.stream().collect(Collectors.groupingBy(BasEvaluationPriceResultDto::getSpaceId));

2、将list转为Map<Long, E>

以id为key,数据为value

List<BasProject> list = new ArrayList();
Map<Long, BasProject> mapBasProject = list.stream().collect(Collectors.toMap(BasProject::getId, Function.identity()));

补充:
Function.identity() 源码:

 static <T> Function<T, T> identity() {
        return t -> t;
    }

Function.identity()的实现其实就是等价于形如 t->t 形式的Lambda表达式。可以让代码更加优雅化。

3、将list转为List

将id收集为一个list

List<BasSpacePackage> list = new ArrayList();
List<Long> idList = list.stream().map(BasSpacePackage::getId).collect(Collectors.toList());

http://lihuaxi.xjx100.cn/news/2058212.html

相关文章

一个类的名字后缀有Handler的都是有什么作用?

在Java中&#xff0c;类名后缀为"Handler"通常表示该类是一个处理器&#xff08;Handler&#xff09;。处理器是用来处理特定任务或事件的组件&#xff0c;通常在事件驱动的编程中使用。这种命名惯例在许多框架和库中都很常见&#xff0c;其中一些常见的用法包括&…

递归法解决多重背包问题

多重背包问题同样是01背包问题的变种&#xff0c;同样可以通过修改01背包部分代码来求解。 方法一&#xff1a;修改递归函数&#xff0c;根据题目新的限制条件——使用次数扩充状态参数个数&#xff0c;将同一个物品选用的次数同样作为参数传递到栈空间中&#xff0c;同时也对…

linux-c时间定时器函数timerfd

timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符&#xff0c;通过文件描述符的可读事件进行超时通知&#xff0c;所以能够被用于select/poll的应用场景。 ​ int timerfd_create(intclockid, intflags);int timerfd_settime(intfd, intflags, const st…

Win10共享打印机提示没有权限使用网络资源怎么办?

win10已共享打印机但别电脑找不到该怎么办&#xff1f;我们来看看解决方法&#xff0c;打开控制面板后点击程序与功能&#xff0c;点击启用或关闭Windows功能&#xff0c;勾选SMB文件共享支持功能即可&#xff0c;具体的操作步骤如下&#xff1a; 进入程序与功能 进入WIN10系统…

matplotlib.animation 3d姿态动画

目录 演示效果&#xff1a; 演示代码&#xff1a; 保存为gif 演示效果&#xff1a; 演示代码&#xff1a; import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib.animation import FuncAnimation# 定义人体关键点…

Talk|卡内基梅隆大学熊浩宇:Open-world Mobile Manipulation-开放世界机器人学习系统

本期为TechBeat人工智能社区第575期线上Talk。 北京时间2月29日(周四)20:00&#xff0c;卡内基梅隆大学研究生—熊浩宇的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “Open-world Mobile Manipulation-开放世界机器人学习系统”&#xff0c;将向…

H5:段落标签与换行标签

目录 一.前言 二.正文 1.段落标签 2.换行标签 三.结语 一.前言 学习前端&#xff0c;从此起飞&#xff0c;愿你坚持&#xff0c;直至等顶。 二.正文 1.段落标签 <p></p> p为段落标签&#xff0c;由英文paragraph简写而来&#xff0c;用于将一段某一部分文本&am…

Unity生命周期函数解析

本文由 简悦 SimpRead 转码&#xff0c; 原文地址 mp.weixin.qq.com Unity生命周期函数解析 Unity 生命周期函数是在游戏对象的不同阶段被调用的方法&#xff0c;通过这些函数&#xff0c;我们可以在不同的时刻执行特定的代码。在这篇文章中&#xff0c;我们将一步步解析 Unit…