List<Integer> copies = Collections.nCopies(copiesCount, value);
javadoc ici .
Cette solution est meilleure que la solution "Arrays.fill" pour plusieurs raisons :
- c'est agréable et lisse,
- il consomme moins de mémoire (voir code source ), ce qui est important pour une quantité importante de copies ou d'objets à copier,
- il crée une liste immuable,
- il peut créer une liste de copies d'un objet de type non primitif. Il faut cependant l'utiliser avec prudence car l'élément lui-même ne sera pas dupliqué et la méthode get() renverra la même valeur pour chaque index. Il est préférable de fournir un objet immuable pour la copie ou de s'assurer qu'il ne sera pas modifié.
Et les listes sont plus cool que les tableaux :) Mais si vous voulez vraiment, vraiment, vraiment un tableau - alors vous pouvez faire ce qui suit :
Integer[] copies = Collections.nCopies(copiesCount, value)
.toArray(new Integer[copiesCount]);