List stream 转Map

java8 stream API学习笔记

关于list转map demo,如下: ↓↓↓

//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.

------------------------------------------------------------

转载于:https://my.oschina.net/u/3829444/blog/1817991

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值