Collectors.toMap空指针
有点坑啊!~
慎用啊,可以用其他工具包提供的toMap(待补充,回头我找找)
Collectors.toMap使用注意事项:
- 不要用两参数方法,用三参数方法,否则会在key冲突时报错
- 注意默认merge方法不允许null值
解决方案:
- 将null替换为默认值
例如Optional.ofNullable().orElse()
- 自定义收集器
Map<String, Integer> studentMap = students.stream().collect(HashMap::new, (map, student) -> map.put(student.getName(), student.getAge()), HashMap::putAll);
- 遍历收集
Map<String, Object> map = new HashMap<>(); list.forEach(o -> map.put(o.getName(), o.getAge()));