我在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”。
当前回答
要在HashMap中获取键,我们有keySet()方法,该方法存在于java.util.Hashmap包中。 例:
Map<String,String> map = new Hashmap<String,String>();
map.put("key1","value1");
map.put("key2","value2");
// Now to get keys we can use keySet() on map object
Set<String> keys = map.keySet();
现在键将有你所有的键在地图可用。 例:[key1, key2]
其他回答
private Map<String, Integer> _map= new HashMap<String, Integer>();
Iterator<Map.Entry<String,Integer>> itr= _map.entrySet().iterator();
//please check
while(itr.hasNext())
{
System.out.println("key of : "+itr.next().getKey()+" value of Map"+itr.next().getValue());
}
我要做的非常简单,但浪费内存的是将值映射到一个键,并相反地将键映射到一个值,这样做:
private Map<Object, Object> team1 = new HashMap<Object, Object>();
使用<Object, Object>很重要,这样你就可以像这样映射key:Value和Value: key
team1。(“联合”,5);
team1。把(5,“联合”);
如果你使用team1。get("United") = 5和team1。get(5) = "United"
但如果你对其中一个对象使用特定的方法,我会更好,如果你做另一张地图:
private Map<String, Integer> team1 = new HashMap<String, Integer>();
private Map<Integer, String> team1Keys = new HashMap<Integer, String>();
然后
team1。(“联合”,5);
team1Keys。把(5,“联合”);
记住,保持简单。
一个解决方案是,如果你知道键的位置,将键转换为一个String数组,并返回该位置的值:
public String getKey(int pos, Map map) {
String[] keys = (String[]) map.keySet().toArray(new String[0]);
return keys[pos];
}
Foreach也可以使用。
team1.forEach((key, value) -> System.out.println(key));
获取Key及其值
e.g
private Map<String, Integer> team1 = new HashMap<String, Integer>();
team1.put("United", 5);
team1.put("Barcelona", 6);
for (String key:team1.keySet()){
System.out.println("Key:" + key +" Value:" + team1.get(key)+" Count:"+Collections.frequency(team1, key));// Get Key and value and count
}
将打印:键:联合值:5 值:6