java map转对象 泛型_java8:封装lambda泛型工具类之list转为map

0 接之前姊妹篇

1  java8的lambda中的map的合并

https://blog.csdn.net/wabiaozia/article/details/84262195

2   最简单入门:java8的lambda中的map相关操作:基础及注意事项图文详解

https://blog.csdn.net/wabiaozia/article/details/103321752

1 main方法

public class LambdaToMapUtils {

public static void main(String[] args) {

Listlist = new ArrayList<>();

for (Long i = 0L; i < 4; i++) {

User user = new User();

user.setId(i);

user.setAge(i);

user.setName(String.valueOf(i));

user.setAddress(String.valueOf(i));

list.add(user);

//重复值:key相同value不同

user.setName(String.valueOf(i+1));

list.add(user);

}

//方式一:泛型

//Mapmap =tomap(list,User::getId,User::getName,(k2,k1)->k2);

//方式二:

//Mapmap = list.stream().collect(Collectors.toMap(User::getId, User::getName, (k1,k2)->k1));

Mapmap =tomap2(list,User::getId,User::getName);

System.out.println(map);

}

private static Maptomap(Listlist,Function super T, ? extends K> keyMapper,

Function super T, ? extends V> valMapper,BinaryOperatormergeFunction) {

//list 空值判断。。

Mapmap =list.stream().

collect(Collectors.toMap(keyMapper, valMapper, mergeFunction));

return map;

}

private static Maptomap2(Collectionc,Function super T, ? extends K> keyMapper,

Function super T, ? extends V> valMapper) {

//list 空值判断。。

Mapmap =c.stream().

collect(Collectors.toMap(keyMapper, valMapper, (k1,k2)->k2));

return map;

}

}

2 user对象

public class User {

String name;

String address;

Long id;

Long age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public Long getAge() {

return age;

}

public void setAge(Long age) {

this.age = age;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值