由对象集合创建各种映射_流

Posted xiaozhengyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由对象集合创建各种映射_流相关的知识,希望对你有一定的参考价值。

由对象集合创建各种映射


@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() //整理
                            )
                    )
            );
}

以上是关于由对象集合创建各种映射_流的主要内容,如果未能解决你的问题,请参考以下文章

Java集合_学习笔记

片段着色器中的球面映射

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

Java IO学习笔记

JS新增对象Map、Set

css 我经常忘记的各种CSS片段的集合。