Collections Początkujący

Operacje zbiorcze kolekcji zamiast pętli modyfikujących

Używaj removeIf(), replaceAll() i List.sort() do bezpośredniego przekształcania kolekcji.

✕ Iterator mutation loop
for (Iterator<Order> it = orders.iterator(); it.hasNext();) {
    if (it.next().cancelled()) {
        it.remove();
    }
}
✓ Java 8+
orders.removeIf(Order::cancelled);
Widzisz problem z tym kodem? Daj nam znać.
👁

Jasny zamiar

Operacja opisuje, co się zmienia, a nie sposób iteracji.

🐛

Bezpieczniejsza modyfikacja

Eliminuje konieczność ręcznego przestrzegania reguł usuwania za pomocą iteratora.

⚡

Mniej kodu

Typowe przekształcenia stają się pojedynczym wyrażeniem.

Stare podejście
Ręczne usuwanie za pomocą iteratora
Nowoczesne podejście
Collection.removeIf()
Od JDK
8
Poziom trudności
Początkujący
Operacje zbiorcze kolekcji zamiast pętli modyfikujących
Dostępne

Dostępne od JDK 8 (marzec 2014)

Nowoczesne interfejsy kolekcji udostępniają typowe modyfikacje bezpośrednio. Metody takie jak removeIf(), replaceAll() i List.sort() zastępują pętle przeładowane logiką sterującą operacjami, które jasno wyrażają zamierzone przekształcenie.