JDK8 Lamdba表达式转换成Map,value为null问题

// 将list转换成Map类型
Map map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName));
// 如果报 map里的value空指针异常,则需要在value,也就是toMap()的第二个参数进行空(null)值的判断逻辑;例如:也就是 Person::getName 改成 p -> p.getName()==null?"":p.getName()就可以解决value为null问题 // Collector> java.util.stream.Collectors.toMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction) // toMap()第三个参数是当有重复的Key时,会执行这段逻辑,传入2个参数,第一个参数是已经存在Map的value值,第二个是即将覆盖的value值,最终返回哪个值为准

 

转载于:https://www.cnblogs.com/XingXiaoMeng/p/10939512.html

你可能感兴趣的:(java)