所以我试图通过int索引获取TreeMap的密钥。
这是我的代码:
TreeMap<String, Integer> map = new TreeMap<String, Integer>(Collections.reverseOrder());
map.put("hi", 1);
map.put("hi2", 5);
System.out.println("Key: " + (String) map.keySet().toArray()[0] + "\nValue: " + map.get(0));
但是当我执行此操作时,我收到错误:
java.lang.Integer cannot be cast to java.lang.String
所以我试图获得密钥:&#34; hi2&#34;
答案 0 :(得分:4)
问题是
"\nValue: " + map.get(0)
get
的论据必须是String
,而不是Integer
0
。所以这样做:
String key = map.keySet().toArray()[0];
Integer value = map.get(key);
System.out.println("Key: " + key + "\nValue: " + value);
答案 1 :(得分:0)
在我看来,错误来自println
声明的后半部分:
println(...map.get(0))
整数0
与地图的类型冲突,其中键类型为String
。
[编辑]
map.keySet().toArray()[0]
map.get()
中密钥类型冲突的错误,您可以更正参数类型,如@Tichodroma上面的回答所示。