前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将List转为Map并key去重

将List转为Map并key去重

作者头像
关忆北.
发布2021-12-07 16:43:44
1.7K0
发布2021-12-07 16:43:44
举报
文章被收录于专栏:关忆北.关忆北.

需求:将查询出的List转换为Map,且使用List中的某个字段为主键去重。

eg:查询出的学生list,将学生根据性别为key,Name为value转为map,由于性别是只有男/女,且map的key不可以重复,哪么我们需要使用Group By对key进行去重。

代码语言:javascript
复制
        Map<Integer, List<String>> collect = studentList.stream()
                .collect(Collectors.groupingBy(Student::getSex, Collectors.mapping(Student::getName, Collectors.toList())));
代码语言:javascript
复制
@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;
    }
}
在这里插入图片描述
在这里插入图片描述

补充:如需要一个Key对应多个Value的数据结构,建议使用MultiValueMap

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-06-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档