#java #hashmap #entryset
#java #hashmap #набор записей
Вопрос:
Я пытаюсь выполнить итерацию по набору записей следующим образом:
for (Entry<A, List<B>> list : service.entrySet()) {
if (list.getKey() == typ1) {
for (B current : list.getValue()) {
// do sth
}
}
} else {
PrintHelper.printOut("not implemented case"
list.getKey());
}
}
}
Даже если у меня есть эта часть, if (list.getKey() == typ1)
я все равно получаю напечатанный регистр not implemented case typ1
.
Почему это так? Что я делаю не так с итерацией / случаем if?
Комментарии:
1. Являются
typ1
и возвращаемым значениемlist.getKey()
строк или любого вида объекта? Если это так, сравните их сequals()
, а не с ‘ ==’ .
Ответ №1:
Ключ карты (или запись карты) является объектом — вам нужно сравнить его с equals
, а не ==
:
if (list.getKey().equals(typ1)) {