Copia di collezioni in modo immutabile
Crea una copia immutabile di qualsiasi collezione in una chiamata.
Confronto Codice
✕ Java 8
List<String> copy =
Collections.unmodifiableList(
new ArrayList<>(original)
);
✓ Java 10+
List<String> copy =
List.copyOf(original);
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Copia intelligente
Salta la copia se la sorgente è già immutabile.
Una chiamata
Nessuna costruzione manuale di ArrayList + wrapping.
Copia difensiva
Le modifiche all'originale non influenzano la copia.
Approccio Vecchio
Copia manuale + Wrap
Approccio Moderno
List.copyOf()
Dal JDK
10
Difficoltà
Principiante
Supporto JDK
Copia di collezioni in modo immutabile
Disponibile
Ampiamente disponibile dal JDK 10 (marzo 2018)
Come funziona
List.copyOf(), Set.copyOf() e Map.copyOf() creano snapshot immutabili di collezioni esistenti. Se la sorgente è già una collezione immutabile, non viene effettuata alcuna copia.
Documentazione Correlata