Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как гарантировано перебрать всё в ArrayList?


Автор: smartchecker 7.10.2013, 12:30
Есть некий ArrayList. Мне нужно перебрать все его элементы, и некоторые удалить.
Пытался использовать несколько конструкций
Код

for (Triad t : triadList) {
}

Код

Iterator<Triad> it = triadList.iterator();
while (it.hasNext()) {
    trd = it.next();
}

Ну и в лоб
Код

for(int i = 0; i < triadList.size(); i++)
    trd = triadList.get(i);
}

В любом случае, если что-то удаляю из ArrayList'а, то перебираются не все элементы.
Что ускользает от моего понимания?
Если ли ещё способ?

Автор: danilych 7.10.2013, 12:36
Код

    List<Traid> listForDel = new ArrayList<Traid>();
    for (Traid t : triadList) {
      if (t.getForDelete() == true)
        listForDel.add(t);
    }
    
    triadList.removeAll(listForDel);

Автор: Magistrus 7.10.2013, 13:00
Код

Iterator<Triad> it = triadList.iterator();
while (it.hasNext()) {
    trd = it.next();
    if (t.getForDelete() == true)
       it.remove();
}

Автор: Mirkes 7.10.2013, 16:01
Я в таких случаях обычно использую способ "влоб" но всегда с конца массива smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)