zoukankan      html  css  js  c++  java
  • 由对象集合创建各种映射_流

    由对象集合创建各种映射


    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class UserIdAndDepartId {
        /**
         * 用户ID
         */
        private String userId;
    
        /**
         * 部门ID
         */
        private String departId;
    }
    

    实例1 Map<String,List>

    public static void main(String[] args) {
        List<UserIdAndDepartId> userIdAndDepartIdList = new ArrayList<>(3);
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000001", "abc"));
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000002", "abc"));
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000003", "abc"));
    
        Map<String, List<UserIdAndDepartId>> departId2UserIdSet;
        departId2UserIdSet = userIdAndDepartIdList
                .stream()
                .collect(Collectors.groupingBy( UserIdAndDepartId::getDepartId));
    }
    

    实例2 Map<String,Set>

    public static void main(String[] args) {
        List<UserIdAndDepartId> userIdAndDepartIdList = new ArrayList<>(3);
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000001", "abc"));
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000002", "abc"));
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000003", "abc"));
    
        Map<String, Set<UserIdAndDepartId>> departId2UserIdSet;
        departId2UserIdSet = userIdAndDepartIdList
                .stream()
                .collect(
                        Collectors.groupingBy( //分组
                                UserIdAndDepartId::getDepartId, //分组依据
                                Collectors.toSet() //整理
                        )
                );
    }
    

    实例3 Map<String,Set>

    public static void main(String[] args) {
        List<UserIdAndDepartId> userIdAndDepartIdList = new ArrayList<>(3);
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000001", "abc"));
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000002", "abc"));
        userIdAndDepartIdList.add(new UserIdAndDepartId("0000003", "abc"));
    
        Map<String, Set<String>> departId2UserIdSet;
        departId2UserIdSet = userIdAndDepartIdList
                .stream()
                .collect(
                        Collectors.groupingBy( //对数据进行分组
                                UserIdAndDepartId::getDepartId, //以部门ID为分组依据
                                Collectors.mapping( //处理分组数据
                                        UserIdAndDepartId::getUserId, //抽取
                                        Collectors.toSet() //整理
                                )
                        )
                );
    }
    
  • 相关阅读:
    笔试复习题《三》
    笔试复习题《二》
    《数据结构(C#语言描述)》
    设计模式《一》
    笔试复习题《一》之常用的排序算法
    序列模型(1)----简单介绍
    梯度消失、爆炸原因及其解决方法
    算法66------计算各个位数不同的数字个数【动态规划】
    TensorFlow实战学习笔记(14)------VGGNet
    TensorFlow技术解析与实战学习笔记(13)------Mnist识别和卷积神经网络AlexNet
  • 原文地址:https://www.cnblogs.com/XiaoZhengYu/p/13320688.html
Copyright © 2011-2022 走看看