繁体   English   中英

如何通过索引获取TreeMap的键?

[英]How to get the key of a TreeMap by it's index?

所以我试图通过 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

所以我试图得到钥匙:“hi2”

问题是

"\nValue: " + map.get(0)

get的参数必须是String ,而不是0类的Integer 所以这样做:

String key = map.keySet().toArray()[0];
Integer value = map.get(key);
System.out.println("Key: " + key + "\nValue: " + value);

在我看来,错误来自println语句的后半部分:

println(...map.get(0))

其中整数0与映射存在类型冲突,其中键类型为String

[编辑]

  • 至于关于通过索引获取密钥的原始问题,我认为你做对了: map.keySet().toArray()[0]
  • 对于在map.get()抱怨键类型冲突的错误,您可以更正参数类型,如上面@Tichodroma 的回答所建议的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM