当前位置: 首页 > 知识库问答 >
问题:

如何将列表转换为地图的地图

洪成济
2023-03-14

我有这样一个代码:

class MyObject{
    String division;
    String subDivision;
    Integer size;

    public MyObject(String division, String subDivision, Integer size) {
        this.division = division;
        this.subDivision = subDivision;
        this.size = size;
}
List<MyObject> list = Arrays.asList(new MyObject("A", "AA", 4),
        new MyObject("A", "AB", 2),
        new MyObject("A", "AC", 3),
        new MyObject("B", "BA", 11),
        new MyObject("B", "BB", 7),
        new MyObject("C", "CA", 8));
Map<String, Map<String,Integer>> map
    = list.stream().collect(Collectors.toMap(MyObject::getDivision), ...);

你能帮我完成代码库吗?

共有1个答案

朱修真
2023-03-14

您可以使用groupingby,它接受分类器和下游收集器。分类器用于基于division创建外部映射,然后使用下游收集器(tomap)生成内部映射:

list.stream()
    .collect(Collectors.groupingBy(MyObject::getDivision,
                                   Collectors.toMap(MyObject::getSubDivision, MyObject::getSize)));
 类似资料:
  • 问题内容: 最近我谈话有什么将要转换的最佳方式是同事,以在Java中,如果有这样做的任何特殊利益。 我想知道最佳转换方法,如果有人可以指导我,我将不胜感激。 这是个好方法吗? 问题答案: 当然,假设每个Item都有一个返回正确类型的键的方法。

  • 我知道我应该使用函数,但我不知道如何使用,也没有看到它的任何示例。

  • 我正在努力使用Vavr将的减少为一个 有人能提供如何使用/的示例吗?

  • 我正在尝试编写代码来掩盖嵌套的json字段。 从...调用此方法。 我在尝试迭代嵌套的json对象时出错... 无法转换scala类型的值。有些要键入scala.collection.mutable.Map 如何以这种方式递归复杂的嵌套json对象?

  • 假设我有一个多映射,如下所示: 第一个步骤是将字符串拆分为一个数组,因为最初它是一个逗号分隔的字符串。然后,我找到任何值中的最大元素数,循环该次数的条目中的所有值,并用结果为每个值创建一个映射。坦率地说,我上周五写了这段代码,但我已经不能正确地阅读它... 所以,一开始这是一件简单的事情,但我最终陷入了混乱,有没有更好的方法来做这件事? 提前谢了。

  • 我在我的颤振应用程序中使用包dio。从我的api问题中获取响应<代码>响应。数据获取类型