当前位置 : 主页 > 编程语言 > java >

java List转Map的三种方法(java8语法特性使用)

来源:互联网 收集:自由互联 发布时间:2022-07-19
有时候我们需要将List中的某些属性转为一个map集合,在java8中提供了流式编程函数可以为我们非常方便的达到目的。 目录 ​​1、创建测试类​​ ​​2、构造测试数据​​ ​​3、三种


有时候我们需要将List中的某些属性转为一个map集合,在java8中提供了流式编程函数可以为我们非常方便的达到目的。

目录

​​1、创建测试类​​

​​2、构造测试数据​​

​​3、三种方法介绍​​

​​(1)第一种:​​

​​(2)第二种:​​

​​(3)第三种:​​


1、创建测试类

package com.example.demo.csdn;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

private Integer id;

private String username;

private String password;

}

2、构造测试数据

List<User> users = new ArrayList<>();
User admin1 = new User(1, "admin1", "123456");
User admin2 = new User(2, "admin2", "123456");
User admin3 = new User(3, "admin3", "123456");
users.add(admin1);
users.add(admin2);
users.add(admin3);

3、三种方法介绍

(1)第一种:

User -> User:返回对象本身

Map<Integer, User> map1 = users.stream().collect(Collectors.toMap(User::getId, User -> User));
System.out.println(map1);

程序运行结果: 

java List转Map的三种方法(java8语法特性使用)_ide

(2)第二种:

Map<Integer, User> map2 = users.stream().collect(Collectors.toMap(User::getId, Function.identity()));

程序运行结果:


Function.identity():Function.identity()是简洁写法,也是返回当前对象


java List转Map的三种方法(java8语法特性使用)_ide

(3)第三种:


Function.identity(), (k1, k2) -> k2):Function.identity()是简洁写法,也是返回当前对象,key 冲突的解决办法,这里选择第二个key覆盖第一个key。


Map<Integer, User> map3 = users.stream().collect(Collectors.toMap(User::getId, Function.identity(), (k1, k2) -> k2));
System.out.println(map3);

 程序运行结果:

java List转Map的三种方法(java8语法特性使用)_ide

上一篇:若依如何修改超级管理员登录密码?
下一篇:没有了
网友评论