Collections Начинающий

Групповые операции с коллекциями вместо циклов с изменением

Используйте removeIf(), replaceAll() и List.sort() для непосредственного преобразования коллекций.

✕ Iterator mutation loop
for (Iterator<Order> it = orders.iterator(); it.hasNext();) {
    if (it.next().cancelled()) {
        it.remove();
    }
}
✓ Java 8+
orders.removeIf(Order::cancelled);
Заметили проблему в этом коде? Сообщите нам.
👁

Ясное намерение

Операция описывает, что изменяется, а не как выполнять итерацию.

🐛

Безопасное изменение

Не нужно вручную соблюдать правила удаления через итератор.

⚡

Меньше кода

Распространённые преобразования становятся одним выражением.

Старый подход
Ручное удаление через итератор
Современный подход
Collection.removeIf()
Начиная с JDK
8
Сложность
Начинающий
Групповые операции с коллекциями вместо циклов с изменением
Доступно

Доступно начиная с JDK 8 (март 2014)

Современные интерфейсы коллекций напрямую предоставляют распространённые операции изменения. Такие методы, как removeIf(), replaceAll() и List.sort(), заменяют перегруженные управляющей логикой циклы операциями, которые явно выражают требуемое преобразование.