У меня возникла проблема, когда я использую TreeMap.
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, но нужно преобразовать Integer в int в строке 8?