【问题标题】:Create a Map of String and List from List of objects in java 8 [duplicate]从java 8中的对象列表创建字符串和列表的映射[重复]
【发布时间】:2020-03-05 13:15:55
【问题描述】:

我有一个List<Emp>,其中Emp 是姓名、ID、地址。

保存的值就像

("Name1, 11, Delhi"),
("Name1, 12, Chennai"),
("Name2, 13, Delhi"),
("Name3, 14, Delhi"),
("Name4, 15, Delhi")

我正在尝试创建一个Map,其中键为名称,值作为具有这些名称的Emp 列表。

这是我尝试过的,效果很好,但我正在寻找更好的方法。

Map<String, List<Emp>> nameMap = new HashMap<>();
  empList.forEach(
                empDto -> {
                    List<EmpDto> empDtoName = new ArrayList<>();
                    String name = empDto.getName();
                    if (nameMap .containsKey(name))
                    {
                        empDtoName = nameMap.get(name);
                    }
                    empDtoName.add(userRoleDto);
                    userRoleMap.put(usrNwId, empDtoName);
                }
        );

【问题讨论】:

    标签: java arraylist java-8 hashmap


    【解决方案1】:

    使用Stream 并使用groupingBy 收集器收集其元素:

    Map<String, List<Emp>> nameMap =
        empList.stream() 
               .collect(Collectors.groupingBy(Emp::getName));
    

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 2013-12-01
      • 2018-07-20
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多