Home page

Removing element from list

May 14, 2014, 15:51

What is the result of this code?

List<Integer> integers = new ArrayList<Integer>();
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(4);
integers.add(5);
for (Integer integer : integers) {
   if (integer % 2 == 0) {
      integers.remove(integer);
   }
}
3 comments
Макс Диланд

объяви переменную integers для лучшего понимания :)

Maxim Pedich

Спасибо, поправил.

Чумаков Егор

remove удаляет по индексу, то есть результирующий список будет — ( 1, 2 , 4).

А вообще так уже никто не пишет,
Я бы написал так
integers.stream().filter(integer -> integer % 2 == 0).forEach(integers::remove);

Maxim Pedich

Егор, здесь будет ConcurrentModificationException

Чумаков Егор

Забыл что это итератор. Впрочем, я на джаве уже особо и не пишу.

Your comment
won’t be published

HTML will not work

Ctrl + Enter