Hashmap keySet() returns 值而不是键
Hashmap keySet() returns the value instead of the key
这是我的 method.In 散列映射,我有成对的国家 - 首都(俄罗斯 - 莫斯科) Europe.However,它不断返回值(首都)而不是键( country)。我测试了我的 hashmap,它的顺序是正确的。
Map<String, String> europe1 = new HashMap<String, String>()
public String randomCountry(Map theMap)
{
Random generator = new Random();
List<String> keys = new ArrayList<String>(theMap.keySet());
String randomKey = keys.get(generator.nextInt(keys.size()));
Object theKeyValue = (String )theMap.get(randomKey);
System.out.println(theKeyValue);
return (String) theKeyValue;
}
如果我这样做:
for ( String key : europe1.keySet() )
{ System.out.println( key ); }
我打印了我的国家。
知道为什么我的方法没有按预期工作吗?
您正在获取此处的值:
Object theKeyValue = (String )theMap.get(randomKey);
如果你想要randomCountry
到return键,你应该return randomKey
而不是theKeyValue
。
Object theKeyValue = (String )theMap.get(randomKey);
你可以return随机键。
有关 keySet() 的更多详细信息,请查找 HashMap 文档 link:仅 return Key 和 entrySet():return 键值对。
https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html
这是我的 method.In 散列映射,我有成对的国家 - 首都(俄罗斯 - 莫斯科) Europe.However,它不断返回值(首都)而不是键( country)。我测试了我的 hashmap,它的顺序是正确的。
Map<String, String> europe1 = new HashMap<String, String>()
public String randomCountry(Map theMap)
{
Random generator = new Random();
List<String> keys = new ArrayList<String>(theMap.keySet());
String randomKey = keys.get(generator.nextInt(keys.size()));
Object theKeyValue = (String )theMap.get(randomKey);
System.out.println(theKeyValue);
return (String) theKeyValue;
}
如果我这样做:
for ( String key : europe1.keySet() )
{ System.out.println( key ); }
我打印了我的国家。
知道为什么我的方法没有按预期工作吗?
您正在获取此处的值:
Object theKeyValue = (String )theMap.get(randomKey);
如果你想要randomCountry
到return键,你应该return randomKey
而不是theKeyValue
。
Object theKeyValue = (String )theMap.get(randomKey);
你可以return随机键。
有关 keySet() 的更多详细信息,请查找 HashMap 文档 link:仅 return Key 和 entrySet():return 键值对。
https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html