List<User>userList=new ArrayList<>();
userList.add(new User(1,"a"));
userList.add(new User(2,"b"));
userList.add(new User(3,"c"));
userList.add(new User(4,"取前者的值"));
userList.add(new User(4,"取后者的值"));
userList.add(new User(5,"e"));
/**
如果key中有值重复,取前者(这里打印的是 4:取前者的值)
1====User(id=1, name=a)
2====User(id=2, name=b)
3====User(id=3, name=c)
4====User(id=4, name=取前者的值)
5====User(id=5, name=e)
*/
//Map<Integer, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, k1 -> k1, (K1, K2) -> K1));
/**
如果key中有值重复,取后者(这里打印的是 4:取后者的值)
1====User(id=1, name=a)
2====User(id=2, name=b)
3====User(id=3, name=c)
4====User(id=4, name=取后者的值)
5====User(id=5, name=e)
*/
Map<Integer, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (K1, K2) -> K2));
for (Integer key:userMap.keySet()){
System.out.println(key+"===="+userMap.get(key));
}
本文含有隐藏内容,请 开通VIP 后查看