TreeMapを使用すると問題が発生しました。整数からintに変換する必要がある理由
Map<Integer, Integer> a = new TreeMap<Integer, Integer>();
a.put(5,1);
a.put(3,2);
a.put(4,3);
int target = 7;
System.out.println(target - a.get(5)); //line 6
for(Map.Entry b : a.entrySet()){
System.out.println(target - b.getValue()); //line 8
}
上記のコードはコンパイルエラーです。しかし、私が8行目をこれに変更した場合:
Map<Integer, Integer> a = new TreeMap<Integer, Integer>();
a.put(5,1);
a.put(3,2);
a.put(4,3);
int target = 7;
System.out.println(target - a.get(5)); //line 6
for(Map.Entry b : a.entrySet()){
System.out.println(target - (int) b.getValue()); //line 8
}
それが動作します。誰かが私にライン6の変更を必要としない理由を教えてもらえますか?ライン8の整数に変換する必要がありますか?
Oh !!!どうもありがとう! – youngyjd
a.entrySet()がすでに型を定義しているので、型を定義する必要がありますか、またはダイヤモンド演算子(Map.Entry <>)がJava 7で導入されていますか?もちろんOPのように何も使用しないと、エラーが発生します。 – Thomas
@Thomas - タイプを定義する必要があります。ダイヤモンド演算子を使用するだけで、コンパイル時エラーが発生します。 –