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;
}
}