Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ConcurrentModification для списка ArrayList, как проще всего "обойти"? 
:(
    Опции темы
lesha_od
Дата 7.4.2007, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 3.12.2006

Репутация: нет
Всего: нет



Добрый день,
Из списка ArrayList<SomeType>, состоящего из некоторого числа элементов, хочу удалить те, которые isEnabled=false. То есть в цикле перебираю элементы и удаляю ненужные.
Но если это делать просто как 

Код

for (Type t : list) list.remove(t);


то будет выдано исключение ConcurrentModificationException.

Можно делать "через ж":
Код


for (int i=0;i<tms.size();i++) {
            // ...... проверка нужного индекса
            tms.remove([i--]);
            // .........
}


либо 

Код

for (Type t : list) if (t.isEnabled()) tmp.add(t);
list=tmp;


Вопрос в том, как это делать по-человечески?smile) Или только так?

Это сообщение отредактировал(а) lesha_od - 7.4.2007, 10:44
PM MAIL   Вверх
y3u
Дата 7.4.2007, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 5
Всего: 13



 smile 

Код

for (Iterator<Type> iterator = collection.iterator(); iterator.hasNext();) {
    Type t = iterator.next();
    if (!t.isEnabled()) {
        iterator.remove();
    }
}


Это сообщение отредактировал(а) y3u - 7.4.2007, 11:17


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.