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

news/2024/10/21 3:29:12/

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.ppmy.cn/news/1116532.html

相关文章

Android13适配-Google官方照片视频选择器

官方照片选择器 图 1. 照片选择器提供了一个直观的界面&#xff0c;便于与您的应用分享照片。 照片选择器的界面可供浏览和搜索&#xff0c;并按日期降序向用户显示其媒体库中的文件。如隐私保护最佳实践 Codelab 中所示&#xff0c;照片选择器为用户提供了一种安全的内置授权…

go语言---锁

什么是锁呢&#xff1f;就是某个协程&#xff08;线程&#xff09;在访问某个资源时先锁住&#xff0c;防止其它协程的访问&#xff0c;等访问完毕解锁后其他协程再来加锁进行访问。这和我们生活中加锁使用公共资源相似&#xff0c;例如&#xff1a;公共卫生间。 死锁 死锁是…

docker 已经配置了国内镜像源,但是拉取镜像速度还是很慢(gcr.io、quay.io、ghcr.io)

前言 国内用户在使用 docker 时&#xff0c;想必都遇到过镜像拉取慢的问题&#xff0c;那是因为 docker 默认指向的镜像下载地址是 https://hub.docker.com&#xff0c;服务器在国外。 网上有关配置 docker 国内镜像源的教程很多&#xff0c;像 腾讯、阿里、网易 等等都会提供…

数据分析三剑客之一:Pandas详解

目录 1 Pandas介绍 2 Pandas的安装与导入 2.1 Pandas模块安装 2.2 Pandas模块导入 3 pandas数据结构及函数 3.1 Series结构 3.1.1 ndarray创建Series对象 3.1.2 dict创建Series对象 3.1.3 标量创建Series对象 3.1.4 位置索引访问Series数据 3.1.5 标签索引访问Series…

2023年以就业为目的学习Java还有必要吗?(文末送书)

目录 一、活力四射的 Java二、从零开始学会 Java三、准备工作四、基础知识五、进阶知识六、高级知识七、结语参与方式 大家好&#xff0c;我是哪吒。 文末送5本《Java编程动手学》 今天来探讨一个问题&#xff0c;现在学 Java 找工作还有优势吗&#xff1f; 在某乎上可以看到…

PowerDesigner数据库设计

PowerDesigner数据库设计_迷茫的启明星的博客-CSDN博客

elasticsearch bulk 批量操作

1&#xff1a;bulk 是 elasticsearch 提供的一种批量增删改的操作API bulk 对 JSON串 有着严格的要求。每个JSON串 不能换行 &#xff0c;只能放在同一行&#xff0c;同时&#xff0c; 相邻的JSON串之间必须要有换行 &#xff08;Linux下是\n&#xff1b;Window下是\r\n&#…

QT---day3---9.19

1> 完成文本编辑器的保存工作 ui界面&#xff1a; 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QFontDialog> #include <QMessageBox> #include <QColor> #include <QColorDialog> #include <QFo…