2017-08-07 7 views
1

私は配列内の重複を見つける際に問題を解決していました。私はHashMapを利用しました。 getValue()関数はIF条件内に含めるとエラーが表示されました。 getValue()関数がHashMapで機能しないのはなぜですか?

for(Map.Entry m : hm.entrySet()) 
{ 
    if(m.getValue() > 1) 
    { 
     System.out.println(m.getKey()); 
    } 
} 

は、しかし、私がなぜこれが起こった型キャスト

for(Map.Entry m : hm.entrySet()) 
{ 
    int count = (int)m.getValue(); 
    if(count > 1) 
    { 
     System.out.println(m.getKey()); 
    } 
} 

を使用したときに正常に動作するようですか?

+1

何それらのK、Vは、どのようなエラーがスローされたマップ –

+0

を定義していますか? –

+0

HashMap <整数、整数> hm =新しいHashMap <整数、整数>(); – batman007

答えて

3

どうしてですか? ...

あなたは、生タイプのエントリを使用しているので...

あなたMap.Entryは例

V

、ジェネリック型Kにマップタイプと一致する必要があります:あなたが定義した場合フォームのマップ

Map<String, Integer> hm = new HashMap<>(); 

、あなたは

for (Entry<String, Integer> m : hm.entrySet()) { 
    if (m.getValue() > 1) { 
     System.out.println(m.getKey()); 
    } 
} 
を行うことができますこの m.getValue() > 1をやってすると、自動的に対する有効な比較を行うint型に整数をVHS版bacause

リテラルint型1

関連する問題