使用Collectors.toMap()进行转换
示例:Student类,分别有id和name两个属性。studentList集合,存储Student对象
1.指定key-value,value是对象中的某个属性值。
Map<Integer,String> studentMap1 =
studentList.stream().collect(Collectors.toMap(Student::getId,Student::getName));
2.指定key-value,value是对象本身,Student->Student 是一个返回本身的lambda表达式。
Map<Integer,Student> studentMap2 =
studentList.stream().collect(Collectors.toMap(Student::getId,Student->Student));
3.指定key-value,value是对象本身,Function.identity()是返回对象本身的简洁写法。
Map<Integer,Student> studentMap3 =
studentList.stream().collect(Collectors.toMap(Student::getId,Function.identity()));
4.指定key-value,value是对象本身,Function.identity()是返回对象本身的简洁写法,key存在冲突,示例代码选择第二个key覆盖第一个key。
Map<Integer,Student> studentMap4 = studentList.stream()
.collect(Collectors.toMap(Student::getId, Function.identity(), (k1,k2)->k2));