java集合 list转map一些常用的方式(Stream流,,,)

Java 集合之间的转换


java集合 list转map一些常用的方式(Stream流,,,)


提示:帮助文档

文章目录

  • Java 集合之间的转换
  • 前言
  • 一、List转换为Map?
    • 1.1、**List**<**Object**>**转化为Map<Integer,String>**
    • 1.2 、**List**<**Object**>转化为Map<Integer,Object>
    • 1.3、**List**<**Object**>转化为Map<Integer,List<**Object**>>
    • 1.4 **List**<**Object**>转化为Map<Integer,List<**String**>>
    • 1.5、 List<Map<String,Object>> 转化为Map<String,Object>
    • 1.6、List<Map<String,String>> 转化为Map<String,Map<String,String>>
    • 1.7、List<Map<String,String>> 转化为Map<String,String>
  • 总结


前言

这片文章是用来整理开发中经常用到的一些集合之间的转换方法,作为笔记,提高开发效率,有需要的小伙伴可以参考一下,这片文章会慢慢补充完整。


提示:以下是本篇文章正文内容,下面案例可供参考

一、List转换为Map?

示例:代码案例(JAVA版)。

public class People (private Integer id;private String name;private Integer ageprivate String address;//TODO 构造方法和get和set方法省略
)
final static List<People> peopleList = new ArrayList<People>();// 初始化集合数据static {People p1 = new People(0001, "张三", 12, "江苏南京");People p2 = new People(0002, "李四", 14, "上海");People p3 = new People(0003, "王二", 11, "浙江台州");People p4 = new People(0004, "李五", 12, "河南郑州");peopleList.add(p1);peopleList.add(p2);peopleList.add(p3);peopleList.add(p4);
}

1.1、List<Object>转化为Map<Integer,String>


Map<Integer, String> map = peopleList.stream().collect(Collectors.toMap
(People::getId, People::getAddress, (value1, value2) -> value1));

1.2 、List<Object>转化为Map<Integer,Object>


Map<Integer, People> map = peopleList.stream().collect(Collectors.toMap
(People::getId, each -> each, (value1, value2) -> value1));

1.3、List<Object>转化为Map<Integer,List<Object>>


Map<Integer, List<People>> map = peopleList.stream().collect(Collectors
.groupingBy(People::getId));

1.4 List<Object>转化为Map<Integer,List<String>>

Map<Integer, List<String>> map3 = peopleList.stream().collect(Collectors.
toMap(People::getId, each -> Collections.singletonList(each.getName()), 
(value1, value2) -> {List<String> union = new ArrayList<>(value1);union.addAll(value2);return union;
}));

1.5、 List<Map<String,Object>> 转化为Map<String,Object>

final static List<Map<String, Object>> mapStudentList = new ArrayList<>();
public static void main(String[] args) {Map<String, Object> map4 = mapStudentList.stream().collect(Collectors.toMap(each -> Objects.toString(each.get("id"), ""), each -> each.get("student"), (key1, key2) -> key1));}/*** 初始化集合数据*/static {Student stu1 = new Student("0001", "张三", 12, "江苏南京");Student stu2 = new Student("0002", "李四", 14, "江苏无锡");Student stu3 = new Student("0003", "王二", 11, "浙江台州");Student stu4 = new Student("0004", "李五", 12, "浙江温州");Map<String, Object> map1 = new HashMap<>();map1.put("id", "0001");map1.put("student", stu1);Map<String, Object> map2 = new HashMap<>();map2.put("id", "0002");map2.put("student", stu2);Map<String, Object> map3 = new HashMap<>();map3.put("id", "0003");map3.put("student", stu3);Map<String, Object> map4 = new HashMap<>();map4.put("id", "0004");map4.put("student", stu4);mapStudentList.add(map1);mapStudentList.add(map2);mapStudentList.add(map3);mapStudentList.add(map4);}

1.6、List<Map<String,String>> 转化为Map<String,Map<String,String>>

    final static List<Map<String, String>> listMapList = new ArrayList<>();public static void main(String[] args) {Map<String, Map<String, String>> map5 = listMapList.stream().collect(Collectors.toMap(each -> each.get("id"), each -> each, (key1, key2) -> key1));System.out.println("map5 = " + map5);}/*** 初始化集合数据*/static {Map<String, String> map1 = new HashMap<>();map1.put("id", "0001");map1.put("name", "张三");map1.put("age", "12");map1.put("address", "江苏南京");Map<String, String> map2 = new HashMap<>();map2.put("id", "0002");map2.put("name", "李四");map2.put("age", "14");map2.put("address", "江苏无锡");Map<String, String> map3 = new HashMap<>();map3.put("id", "0003");map3.put("name", "王二");map3.put("age", "11");map3.put("address", "浙江台州");Map<String, String> map4 = new HashMap<>();map4.put("id", "0004");map4.put("name", "李五");map4.put("age", "12");map4.put("address", "浙江温州");listMapList.add(map1);listMapList.add(map2);listMapList.add(map3);listMapList.add(map4);}

1.7、List<Map<String,String>> 转化为Map<String,String>

     final static List<Map<String, String>> listmapstringlist = new ArrayList<>();public static void main(String[] args) {Map<String, String> map6 = listmapstringlist.stream().collect(Collectors.toMap(each -> each.get("id"), each -> each.get("name"), (key1, key2) -> key1));}/*** 初始化集合数据*/static {Map<String, String> map1 = new HashMap<>();map1.put("id", "0001");map1.put("name", "张三");map1.put("age", "12");map1.put("address", "江苏南京");Map<String, String> map2 = new HashMap<>();map2.put("id", "0002");map2.put("name", "李四");map2.put("age", "14");map2.put("address", "江苏无锡");Map<String, String> map3 = new HashMap<>();map3.put("id", "0003");map3.put("name", "王二");map3.put("age", "11");map3.put("address", "浙江台州");Map<String, String> map4 = new HashMap<>();map4.put("id", "0004");map4.put("name", "李五");map4.put("age", "12");map4.put("address", "浙江温州");listmapstringlist.add(map1);listmapstringlist.add(map2);listmapstringlist.add(map3);listmapstringlist.add(map4);}

总结

先总结这么多吧;
日积月累,小溪汇大海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/82908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【虚幻引擎】UE5 VLC接入网络监控、视频直播、网络直播支持RTSP、RTMP

一、如何更新自己的插件匹配自己想要的UE版本 我们在网上下载的插件一般是UE4版本的插件&#xff0c;这个时候就需要我们自己去修改编译&#xff0c;接下来教大家修改插件来适配自己的引擎。 如果不想自己编译代码&#xff0c;可以直接找我拿编译好的UE5.0、UE5.1、UE5.2的插件…

学习路之PHP--laravel postman 提交表单出现419错误

问题图片 解决&#xff1a; 白名单 有时候你可能希望设置一组不需要 CSRF 保护的 URL 。例如&#xff0c;如果你正在使用 Stripe 处理付款并使用了他们的 webhook 系统&#xff0c;你会需要从 CSRF 的保护中排除 Stripe webhook 处理程序路由&#xff0c;因为 Stripe 不知道要发…

swift 天气

定义不同模式主题 自定义颜色 输入框 委托和协议 扩展 协议 http 请求 调用api 闭包

记录crack某IDE插件过程

声明&#xff1a;本文仅记录学习过程&#xff0c;已对关键位置脱敏处理&#xff0c;未提供任何工具&#xff0c;请支持正版。 反编译jar包 使用cfr进行对插件核心jar包MyBxxxxxx-obfuss.jar进行反编译&#xff0c;在本地生成a.txt。 java -jar cfr-0.152.jar MyBxxxx-obfuss.…

面试被问:Mysql的InnoDB下RR是如何解决幻读问题的

这个问题应该分几方面来答 第一方面&#xff1a;什么是幻读 Mysql事务在并发下会产生脏读、不可重复读、幻读问题。 赃读&#xff1a;一个事务可以读到另一个事务还没有提交的数据&#xff1b; 不可重复读&#xff1a;一个事务可以读到另一个事务修改并提交的数据&#xff1…

神经网络小记-混淆矩阵

混淆矩阵&#xff08;Confusion Matrix&#xff09;是在机器学习和统计学中用于评估分类模型性能的一种常用工具。它以表格的形式显示了模型的预测结果与实际真值之间的关系&#xff0c;特别适用于二元分类问题。混淆矩阵通常包含以下四个重要的指标&#xff1a; 假设我们有一…

WPF控件模板

在过去&#xff0c;Windows开发人员必须在方便性和灵活性之间做出选择。为得到最大的方便性&#xff0c;他们可以使用预先构建好的控件。这些控件可以工作的足够好&#xff0c;但可定制性十分有限&#xff0c;并且几乎总是具有固定的可视化外观。偶尔&#xff0c;某些控件提供了…

用flask框架flask-sock和websocket创建一个自己的聊天界面

WebSocket 协议在10年前就已经标准化了(在2011年&#xff0c;你能相信吗?)所以我相信你不需要介绍。但是如果你不熟悉它&#xff0c;WebSocket 是 HTTP 协议的一个扩展&#xff0c;它在客户端和服务器之间提供了一个永久的、双向的通信通道&#xff0c;在这里双方可以实时地发…

Hugging Face使用Stable diffusion Diffusers Transformers Accelerate Pipelines VAE

Diffusers A library that offers an implementation of various diffusion models, including text-to-image models. 提供不同扩散模型的实现的库&#xff0c;代码上最简洁&#xff0c;国内的问题是 huggingface 需要翻墙。 Transformers A Hugging Face library that pr…

Java手写归并排序和案例拓展

Java手写归并排序和案例拓展 手写归并排序具必要性&#xff1a; 理解算法原理&#xff1a;通过手写归并排序算法&#xff0c;可以深入理解其原理和操作步骤。从头开始编写算法代码可以加深对归并排序的理解&#xff0c;包括分割、合并等步骤。 学习编程技巧&#xff1a;手写归…

怎么将几张图片做成pdf合在一起

怎么将几张图片做成pdf合在一起&#xff1f;在我们平时的工作中&#xff0c;图片和pdf都是非常重要的电脑文件&#xff0c;使用也非常频繁&#xff0c;图片能够更为直观的展示内容&#xff0c;而pdf则更加的正规&#xff0c;很多重要文件大多会做成pdf格式的。在职场人的日常工…

C# OpenCvSharp 图片模糊检测(拉普拉斯算子)

效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.VisualStyl…

java CAS详解(深入源码剖析)

CAS是什么 CAS是compare and swap的缩写&#xff0c;即我们所说的比较交换。该操作的作用就是保证数据一致性、操作原子性。 cas是一种基于锁的操作&#xff0c;而且是乐观锁。在java中锁分为乐观锁和悲观锁。悲观锁是将资源锁住&#xff0c;等之前获得锁的线程释放锁之后&am…

Linux下,基于TCP与UDP协议,不同进程下单线程通信服务器

C语言实现Linux下&#xff0c;基于TCP与UDP协议&#xff0c;不同进程下单线程通信服务器 一、TCP单线程通信服务器 先运行server端&#xff0c;再运行client端输入"exit" 是退出 1.1 server_TCP.c **#include <my_head.h>#define PORT 6666 #define IP &qu…

React 全栈体系(九)

第五章 React 路由 一、相关理解 1. SPA 的理解 单页 Web 应用&#xff08;single page web application&#xff0c;SPA&#xff09;。整个应用只有一个完整的页面。点击页面中的链接不会刷新页面&#xff0c;只会做页面的局部更新。数据都需要通过 ajax 请求获取, 并在前端…

el-select 下拉框全选、多选的几种方式组件

组件一、基础多选 适用性较广的基础多选&#xff0c;用 Tag 展示已选项 <template><el-select v-model"value1" multiple placeholder"请选择"><el-optionv-for"item in options":key"item.value":label"item.la…

基于SpringBoot+Vue的宠物领养饲养交流管理平台设计与实现

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

vue3+TS前端JS实现 搜索关键词变红

起初在网上搜索获得的处理方式大都是类似这种&#xff1a; 但是实际使用中发现&#xff0c;对于汉字和数字是没有问题的&#xff0c;但是如果有字母就会出现问题。 1.只有汉字和数字的时候&#xff1a;匹配正常。 2.当有字母的时候&#xff1a;异常替换。 原因&#xff1a;第二…

[sqoop]hive3.1.2 hadoop3.1.1安装sqoop1.4.7

参考: Hadoop3.2.4Hive3.1.2sqoop1.4.7安装部署_hadoop sqoop安装_alicely07的博客-CSDN博客 一、安装 1、解压 tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /home/data_warehouse/module mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop-1.4.72、配置文件 sqoop-env.s…

【记录】实现从Linux下载下载文件(文件导出功能)并记录过程产生的BUG问题。

前言 导出功能的实现&#xff0c;主要记录总结导出过程中出现的一些问题。 代码实现导出功能 public R templateDown(HttpServletResponse response) {String fileName "template.xlsx";// 清空responseresponse.reset();response.setCharacterEncoding("UTF…