![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
Я в разных потоках работаю с HashMap, в одном меняю, в другом итерирую. Где-то прочитал, что HashMap fail-safe, и решил, что ошибок не бывает... Но в цикле выскакивает экзепшн:
java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:827) at Database.sendText(Database.java:403) at ClientLogic.text(ClientLogic.java:31) at Client.run(Client.java:210) что делать? |
|||
|
||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
-------------------- Бонифаций. |
|||
|
||||
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
А если вместо итератора использовать keySet().toArray(), не будет вылетать?
|
|||
|
||||
| tipoc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 20.3.2004 Репутация: 1 Всего: 1 |
Когда ты итерируешь по коллекции, ты не можешь в это же время модифицировать коллекцию, только через метод add() класса Iterator (в классе ListIterator также есть метод remove()), иначе возникает ConcurrentModificationException.
Вот что написано в документации к классу ConcurrentModificationException:
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |