Ce face List.replaceAll
replaceAll(f) parcurge lista și pune în locul fiecărui element x valoarea f(x). Este echivalentul scurt al unei bucle cu set(i, f(get(i))). Lista rămâne cu aceeași lungime, iar tipul elementelor nu se poate schimba (funcția primește un E și returnează un E).
Dacă vrei o listă nouă, eventual cu alt tip de elemente (de exemplu din String în Integer), folosește stream().map(...).toList().
Parametri
| Parametru | Descriere |
|---|---|
operator |
Funcția aplicată fiecărui element, de obicei un lambda: x -> x * 2. |
Ce returnează
Nimic: lista se modifică pe loc.
Exemple
Exemplul 1: Scumpirea tuturor prețurilor cu 10%
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Double> preturi = new ArrayList<>(List.of(10.0, 25.0, 4.5));
preturi.replaceAll(p -> Math.round(p * 1.10 * 100) / 100.0);
System.out.println("Prețuri noi: " + preturi);
}
}
Rezultat
Prețuri noi: [11.0, 27.5, 4.95]
Exemplul 2: Normalizarea numelor
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> nume = new ArrayList<>(List.of(" ana ", "MIHAI", "ioana "));
nume.replaceAll(String::strip);
nume.replaceAll(s -> s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase());
System.out.println(nume);
}
}
Rezultat
[Ana, Mihai, Ioana]
Greșeli frecvente
- Încerci să schimbi tipul:
List<String>nu poate deveniList<Integer>cureplaceAll. Folosește un stream. - Apelezi
replaceAllpe o listă de laList.of: aruncăUnsupportedOperationException. - Confunzi
List.replaceAllcuString.replaceAll, care înlocuiește text după o expresie regulată.
Comenzi înrudite
List.get: get citește elementul de la o poziție; set îl înlocuiește și returnează valoarea veche.Map.replace: replace schimbă valoarea unei chei doar dacă cheia există; replaceAll recalculează toate valorile cu o funcție.Collection.stream: Creează un Stream peste elementele colecției, ca să le filtrezi, transformi, sortezi sau aduni într-un rezultat.Collection.removeIf: Șterge din colecție toate elementele pentru care condiția dată este adevărată. Returnează true dacă s-a șters ceva.