Вот метод по удалению людей из карты, если зп ниже 500.
ВОПРОС: пока я не создал новую карту h, метод выкидывал ошибку. ПОчему?
ВЫКИДЫВАЛ ОШИБКУ:
public static void removeItemFromMap(HashMap<String, Integer> map) {
for (Map.Entry<String, Integer> hh : map.entrySet()){
if (hh.getValue()<500)
{map.remove(hh.getKey());}}
ВСЕ ХОРОШО:
public static void removeItemFromMap(HashMap<String, Integer> map) {
HashMap<String, Integer> h = new HashMap<String, Integer>(map);
for (Map.Entry<String, Integer> hh : h.entrySet()){
if (hh.getValue()<500)
{map.remove(hh.getKey());}}
Dima
35 уровень
один момет не понял
Архивный
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Илья ГековMaster
8 января 2019, 16:01решение
Нельзя перебирать элементы коллекции и в процессе перебора удалять элементы этой же коллекции.
+4