Je suis en train de googler et n'arrive pas à trouver la syntaxe. Ma arraylist
peut être renseignée différemment en fonction d'un paramètre utilisateur. Je l'ai donc initialisée.
ArrayList<Integer> arList = new ArrayList<Integer>();
Et maintenant, j'aimerais ajouter des centaines d'entiers sans le faire un à un avec arList.add(55);
Si vous avez une autre liste contenant tous les éléments que vous souhaitez ajouter, vous pouvez créer arList.addAll(otherList)
. Si vous souhaitez toujours ajouter les mêmes éléments à la liste, vous pouvez également créer une nouvelle liste qui est initialisée pour contenir toutes vos valeurs et utiliser la méthode addAll()
, avec quelque chose comme:
Integer[] otherList = new Integer[] {1, 2, 3, 4, 5};
arList.addAll(Arrays.asList(otherList));
ou, si vous ne voulez pas créer ce tableau inutile:
arList.addAll(Arrays.asList(1, 2, 3, 4, 5));
Sinon, vous devrez avoir une sorte de boucle qui ajoute les valeurs à la liste individuellement.
Quelle est la "source" de ces entiers? Si vous avez besoin de coder en dur dans votre code source, vous pouvez faire
arList.addAll(Arrays.asList(1,1,2,3,5,8,13,21));
Collections.addAll
est une méthode varargs qui nous permet d’ajouter un nombre quelconque d’éléments à une collection dans une seule instruction:
List<Integer> list = new ArrayList<>();
Collections.addAll(list, 1, 2, 3, 4, 5);
Il peut également être utilisé pour ajouter des éléments de tableau à une collection:
Integer[] arr = ...;
Collections.addAll(list, arr);
Si vous cherchez à éviter plusieurs lignes de code pour économiser de l'espace, cette syntaxe pourrait être utile:
Java.util.ArrayList lisFieldNames = new ArrayList() {
{
add("value1");
add("value2");
}
};
En supprimant les nouvelles lignes, vous pouvez l'afficher compressé comme suit:
Java.util.ArrayList lisFieldNames = new ArrayList() {
{
add("value1"); add("value2"); (...);
}
};
Si vous aviez besoin d’ajouter beaucoup d’entiers, il serait probablement plus simple d’utiliser une boucle for. Par exemple, ajouter 28 jours à un tableau daysInFebruary.
ArrayList<Integer> daysInFebruary = new ArrayList<>();
for(int i = 1; i <= 28; i++) {
daysInFebruary.add(i);
}