Я тут добавил свой "класс костылик"(чтобы обойти deprecated date) чтобы понять почему у меня не прошла сокращенная запись итератора и так и не понял... Может кто объяснить?
Iterator<Map.Entry<String, dtr>> iter = map.entrySet().iterator();
тут все работает while (iter.hasNext()){
и сдал я именно так int mn = iter.next().getValue().mnt;
if ((mn==5)||(mn==6)||(mn==7)){
iter.remove();
}
}
А вот так не работает
// for (HashMap.Entry<String, dtr> es:map.entrySet()){
// dtr dt = es.getValue();
// String st = es.getKey();
// int mn = dt.mnt;
// if ((mn==5)||(mn==6)||(mn==7)){
// map.remove(st);
// }
// }
объясните пожалуйста. Я почти понял но не до конца.
Максим Кобыляков
41 уровень
объясните почему только с итератором а не сокращенной записью
Архивный
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Roman Pryshchepa Java Developer Expert
2 марта 2018, 14:14решение
При использовании for нельзя удалять, при использовании итератора - можно (т.к. происходит проверка iter.hasNext() ).
+2