【问题标题】:How to store value in a map inside map? [duplicate]如何在地图内的地图中存储价值? [复制]
【发布时间】:2020-11-14 04:38:31
【问题描述】:

我有一段这样的代码:

    Map<Integer, Map<Integer, Integer>> hashMap = new HashMap<>();
    for (int[] time : times) {
        if (!hashMap.containsKey(time[0])) {
            hashMap.put(time[0], new HashMap<Integer, Integer>());
        }
        hashMap.get(time[0]).put(time[1], time[2]);
    }

在这段代码中,time 是一个包含 3 个元素的数组(例如 [0, 1, 2]),times 就是由这样的数组组成的。我首先存储了这样的元素,但是当我稍后访问地图时,它会抛出一个NullPointerException。这是否意味着地图实际上没有存储任何内容?

【问题讨论】:

  • 你想用这个实现什么?
  • 请出示您访问hashMap的代码。

标签: java hashmap


【解决方案1】:

您的代码看起来正确。运行后,如果time[]{ 0, 1, 2 },我会期待

System.out.println(hashMap.get(0).get(1))

将输出“2”。

检查您的代码以访问地图。

请注意,如果您尝试使用不同的顶级键,例如

int x = hashMap.get(3).get(4);

你会得到一个 NullPointerException ,因为 hashMap.get(3) 返回 null

【讨论】:

    猜你喜欢
    • 2013-05-20
    • 2016-04-04
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2017-03-23
    • 2022-01-14
    相关资源
    最近更新 更多