我对地图很陌生,而且我很困难。我有以下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?
答案 0 :(得分:2)
.get()
正在尝试使用您已声明的地图键。既然您想在Map [A] [B]中找到值,那么您应该这样参考:
int x = routes.get("A").get("B");