从嵌套的HashMap访问HashMap数据

时间:2012-03-08 06:36:44

标签: java hashmap

我在这里有一个有趣的情况。我正在构建一个棋盘游戏,我有一个声明属于HashMap的棋盘

HashMap<String, HashMap> board = new HashMap<String, HashMap>();

此主板上有多个图层,这就是为什么这个HashMap必须使用其他HashMaps。

我们使用tile对象填充此板,如下所示。

HashMap tileObject = new HashMap();
tileObject.put("key1", value1);
tileObject.put("key2", value2);
tileObject.put("name", value3);

我们正在将这个(和其他瓷砖)添加到电路板上。

board.put((String)tileObject.get("name"), tileObject); 

所以这一切都很好,我们已经在电路板上添加了瓷砖。现在我的问题是,从这个董事会阅读。在分析电路板时,我在函数中有这段代码

HashMap takeTileObject = new HashMap();
takeTileObject.put("unique-coordinate", board.get("unique-coordinate");
// we are getting the values from board at key "unique-coordinate"

我需要做的是从takeTileObject访问key1 / key2 / name。我试过这个

takeTileObject.get("unique-coordinate").(NOTHING HELPFUL HERE);

我理想情况下会发生这样的事情。

takeTileObject.get("unique-coordinate").get("key1");
这可能吗?

非常感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:3)

这是因为没有指定takeTileObject

的类型
HashMap<String, HashMap> takeTileObject = new HashMap<String, HashMap>();

告诉系统该值是HashMap对象,您应该可以调用它

takeTileObject.get("unique-coordinate").get("key1");

答案 1 :(得分:0)

更改代码

HashMap(String, HashMap> board = new HashMap<String, HashMap>();

HashMap<String, HashMap> board = new HashMap<String, HashMap>();