我在Java中有一个这样的Hashmap:
private Map<String, Integer> team1 = new HashMap<String, Integer>();
然后我像这样填充它:
team1.put("United", 5);
我怎么才能拿到钥匙?类似于:team1.getKey()返回“United”。
我在Java中有一个这样的Hashmap:
private Map<String, Integer> team1 = new HashMap<String, Integer>();
然后我像这样填充它:
team1.put("United", 5);
我怎么才能拿到钥匙?类似于:team1.getKey()返回“United”。
当前回答
当你想要获得参数(United)的值(5),你也可以考虑使用双向映射(例如,由Guava: http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/BiMap.html提供)。
其他回答
您可以使用keySet()方法检索Map的所有键。现在,如果你需要的是一个给定值的键,那就完全是另一回事了Map不会帮你;你需要一个专门的数据结构,像来自Apache的公共集合的bidmap(一个允许键和值之间双向查找的映射)-还要注意几个不同的键可以映射到相同的值。
Foreach也可以使用。
team1.forEach((key, value) -> System.out.println(key));
当你想要获得参数(United)的值(5),你也可以考虑使用双向映射(例如,由Guava: http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/BiMap.html提供)。
一个解决方案是,如果你知道键的位置,将键转换为一个String数组,并返回该位置的值:
public String getKey(int pos, Map map) {
String[] keys = (String[]) map.keySet().toArray(new String[0]);
return keys[pos];
}
一个HashMap包含多个键。您可以使用keySet()来获取所有键的集合。
team1.put("foo", 1);
team1.put("bar", 2);
将存储1,键“foo”和2,键“bar”。遍历所有键:
for ( String key : team1.keySet() ) {
System.out.println( key );
}
将打印“foo”和“bar”。