Цитата:
Сообщение от Anikey
Mangol,
PHP код:
final LinkedHashMap<Object, Object> linked = new LinkedHashMap<>(); linked.put("1", "1"); linked.put("2", "2"); linked.put("3", "3");
Следующие выражения выбьют ошибку:
Java 8:
PHP код:
linked.entrySet().stream().filter((i) -> ("3".equals(i.getKey()))).forEachOrdered((i) -> { linked.remove(i.getKey()); });
Ниже 8 версии:
PHP код:
for (Entry<Object, Object> i : linked.entrySet()) { if ("3".equals(i.getKey())) { linked.remove(i.getKey()); } }
А вот это решение отработает правильно и без ошибок:
PHP код:
[COLOR="red"]final Iterator<Entry<Object, Object>> i = linked.entrySet().iterator(); while (i.hasNext()) { if ("3".equals(i.next().getKey())) { i.remove(); } }[/COLOR]
|
if ("2".equals(i.next().getKey())) {
i.remove();
}
Сделай 2-ое удаление