为什么遍历条目集不起作用?
Why does iterating over entry set not work?
我尝试像这样迭代 EntrySet:
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 情况下做错了什么?
Map(或映射条目)的键是一个对象 - 您需要将其与 equals
进行比较,而不是 ==
:
if (list.getKey().equals(typ1)) {
我尝试像这样迭代 EntrySet:
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 情况下做错了什么?
Map(或映射条目)的键是一个对象 - 您需要将其与 equals
进行比较,而不是 ==
:
if (list.getKey().equals(typ1)) {