将List转为Map并key去重
Posted 爱叨叨的程序狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将List转为Map并key去重相关的知识,希望对你有一定的参考价值。
需求:将查询出的List转换为Map,且使用List中的某个字段为主键去重。
eg:查询出的学生list,将学生根据性别为key,Name为value转为map,由于性别是只有男/女,且map的key不可以重复,哪么我们需要使用Group By对key进行去重。
Map<Integer, List<String>> collect = studentList.stream()
.collect(Collectors.groupingBy(Student::getSex, Collectors.mapping(Student::getName, Collectors.toList())));
@Test
public void test7() {
List<Student> studentList = new ArrayList<>();
studentList.add(new Student("张三",1));
studentList.add(new Student("李四",2));
studentList.add(new Student("王五",1));
studentList.add(new Student("小六",1));
studentList.add(new Student("张三S",2));
Map<Integer, List<String>> collect = studentList.stream()
.collect(Collectors.groupingBy(Student::getSex, Collectors.mapping(Student::getName, Collectors.toList())));
}
class Student {
private String name;
private Integer sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Student(String name, Integer sex) {
this.name = name;
this.sex = sex;
}
}
以上是关于将List转为Map并key去重的主要内容,如果未能解决你的问题,请参考以下文章