0
点赞
收藏
分享

微信扫一扫

java8 lambda表达式处理map

安七月读书 2022-05-18 阅读 21
public class Student {
private String id;
private String name;
private String level;
}
List<Student> list = new ArrayList<>();
list.add(new Student("1","张三" + 1,"A" + 1));
list.add(new Student("2","张三" + 2,"A" + 2));
list.add(new Student("1","张三" + 3,"A" + 3));
list.add(new Student("4","张三" + 4,"A" + 4));
list.add(new Student("5","张三" + 5,"A" + 5));
/**
* map有3种重载
*/
//1 仅返回key,value的映射关系
Map<String, String> map1 = list.stream()
.collect(
Collectors
.toMap(
Student::getId,
Student::getName));

//2 用于针对有重复键的映射关系
Map<String, String> map2 = list.stream()
.collect(
Collectors
.toMap(
//用id做map的key,name做map的val,
//同一个key,可能会有多个val,用新val还是老val
//可以这样设置
item -> item.getId(),
item -> item.getName(),
(oldVal, currVal) -> oldVal));

//3 用于返回某些特定map
Map<String, String> map3 = list.stream()
.collect(
Collectors
.toMap(
//用id做map的key,name做map的val,
//同一个key,可能会有多个val,用新val还是老val
//可以这样设置
item -> item.getId(),
item -> item.getName(),
(oldVal, currVal) -> oldVal,
HashMap::new));




举报

相关推荐

0 条评论