List stream 转Map

java8 stream API学习笔记java

关于list转map demo,以下: ↓↓↓ide

//3个Users对象
Users users0 = new Users("0", "tom", 12);
Users users1 = new Users("1", "jerry", 11);
Users users2 = new Users("2", "superman", 12);

//users 加入示例 list
List<Users> list = new ArrayList<>();
list.add(users0);
list.add(users1);
list.add(users2);

//将list转成map key:users.id value:users.age
Map<String, Integer> map = list.stream().collect(Collectors.toMap(Users::getId, Users::getAge));

//将list转成map key:users.id value:users对象
//第一种 直接返回users自己
Map<String, Users> map0 = list.stream().collect(Collectors.toMap(Users::getId, users -> users));

//将list转成map key:users.id value:users对象
//第二种 Function中有一个static方法identity 返回自己
Map<String, Users> map1 = list.stream().collect(Collectors.toMap(Users::getId, Function.identity()));

//将list转成map key:users.age value:users对象
//若是list中的age存在相同的时候,转化map的时候就会出错Duplicate key
Map<Integer, Users> map2 = list.stream().collect(Collectors.toMap(Users::getAge, Function.identity()));
//toMap的重载,定义key2覆盖key1的值
Map<Integer, Users> map3 = list.stream().collect(Collectors.toMap(Users::getAge, Function.identity(),(key1,key2)->key2));

 

Users对象,只有3个字段学习

private String id;
private String name;
private Integer age;

 

 

Mark 2018-5-24: 今天我要辞职, f-ck,fu-k,f--k.spa

------------------------------------------------------------3d

相关文章
相关标签/搜索