-1

これが私の方法です。ハッシュマップには、ヨーロッパの国-首都(ロシア-モスクワ)のペアがあります.ただし、キー(国)ではなく値(首都)を返し続けます.ハッシュマップをテストしました正しい順序になっています。

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 ); }

私は自分の国を印刷します。

私の方法が期待どおりに機能しない理由はありますか?

4

2 に答える 2

0
Object theKeyValue = (String )theMap.get(randomKey);

randomKey を返すことができます。

keySet() に関する詳細については、HashMap のドキュメント リンクを参照してください。キーのみを返すには、entrySet() : キーと値のペアを返します。

https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

于 2015-11-04T14:01:28.327 に答える