J'ai une structure de données comme un Rowset de base de données, dont les lignes et les lignes ont des colonnes. J'ai besoin d'initialiser une colonne avec des valeurs nulles, le code actuel est de faire une boucle à travers chaque colonne pour une ligne et d'initialiser les valeurs à NULL. Ce qui est très inefficace si vous avez 100s ou des lignes et 10s de colonne. Donc à la place je garde une ArrayList initialisée de colonnes au niveau de RowSet, puis je fais un clone de cette Arraylist pour les lignes individuelles, car je crois que clone() est plus rapide que de boucler chaque élément.Clonage de Java ArrayList et prévention des modifications
row.columnsValues = rowsset.NullArrayList.clone()
problème est NullArrayList peut être modifié accidentellement après avoir été cloné, sacrifiant ainsi l'intégrité de ArrayList au niveau RowSet, pour éviter que je fais 3 choses
1) Delcaring ArrayList en tant que final 2) Tous les éléments que j'insère sont finaux ou nuls 3) Les méthodes pour lesquelles arrayList est passée à d'autres baies sont déclarées définitives.
Cela ressemble à un plan, voyez-vous des trous?
Ce n'est pas correct. Vous pouvez toujours ajouter quelque chose à la liste non modifiable en ajoutant quelque chose à la liste originale. – Fortega
a ajouté un appel à 'clone()' – Bozho
C'est mieux :) – Fortega