如何访问地图中嵌套地图中的项目(Java)

时间:2015-12-26 02:03:19

标签: java string dictionary hashmap

修改:我已经尝试了建议的打印,但它给了我语法错误。无法解决.get任何人都知道修复?

屏幕截图:http://imgur.com/hoif6VL

问题:我有这张Java地图Map<String, Object> TestMap = new HashMap<String, Object>()。 在其对象值内是另一个地图Map<String, Integer> NestedTestMap

我将String song存储为第一张地图的字符串键,我将第二张地图存储为String song的对象值。在第二张地图中,我将String Championships存储为其字符串键,并将Integer 113存储为其对象值。

问题:如何访问整数?我将以某种方式访问​​第一个地图的字符串以到达第二个地图,并获得第二个地图的字符串整数。是的,非常复杂哈哈。

奖金:我如何将其作为断言声明?这对我不起作用:assert (Map<String, Object>)(TestMap.get("song")).get(("Championships").equals(113))

当我有嵌套地图时,这样的东西对我来说很好: assert ParsedMap.get("song").equals("kanye")

1 个答案:

答案 0 :(得分:5)

首先以类型安全的方式定义您的地图 - 它是Map<String, Map<String, Integer>>。除非你有充分的理由,最好不要使用返回Object的地图 - 之后很难保持类型安全。

一旦编译器知道你的类型就很容易了。

final Map<String, Map<String, Integer>> myMap = somethingReturningAMap();
assertThat(myMap.get("myName").get("mySong"), equalTo(113));

注意:对assertThatequalTo使用JUnit / Hamcrest。