Java从TreeMap中检索值<string,treemap <string,=“”integer =“”>&gt;

时间:2015-05-16 15:43:36

标签: java dictionary treemap

我对地图很陌生,而且我很困难。我有以下TreeMap:

TreeMap<String, Map<String, Integer>> routes = new TreeMap<String, Map<String, Integer>>();    

让我们说,例如,我的TreeMap填充如下:

{A={B=10, C=15, D=20}, B={C=35, D=25}, D={C=30}}

现在我尝试从我的TreeMap打印出Integer值并将其分配给int x = routes.get(0).get(0),但我收到以下错误:

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

经过一些阅读后,我明白我试图将一个String对象转换为一个不正确的Integer对象,这就是为什么Java抛出错误意味着我的x被分配给{ {1}}而非B

所以我的问题是如何将x赋值为10?

1 个答案:

答案 0 :(得分:2)

.get()正在尝试使用您已声明的地图键。既然您想在Map [A​​] [B]中找到值,那么您应该这样参考:

int x = routes.get("A").get("B");