Comment initialiser un ArrayList en Java ?

Il faut dans un premier temps initialiser la liste puis y ajouter les éléments un par un. Voici comment.

Dans le langage Java, la classe ArrayList est utilisée pour stocker et accéder à des données. Il faut dans un premier temps initialiser la liste puis y ajouter les éléments un par un avec la méthode add().

ArrayList couleurs = new ArrayList();
couleurs.add(Rouge);
couleurs.add(Bleu);
couleurs.add(Vert);

L'écriture de ce code peut être fastidieuse si vous avez une longue liste. Il existe cependant des possibilités pour factoriser le code et le raccourcir.

La première méthode est l'initialisation à double accolade. Cette alternative permet d'initialiser la liste et en même temps d'ajouter les éléments.

ArrayList couleurs = new ArrayList() {{
 add(Rouge);
 add(Bleu);
 add(Vert);
}};

Cette méthode a cependant des inconvénients. En détail, cette écriture crée une classe qui hérite de la classe ArrayList et possède un constructeur pouvant instancier des éléments. Ensuite l'objet couleurs appartenant à cette classe est créé. Bien que cette écriture soit correcte, elle utilise beaucoup plus de ressources et est donc moins performante que l'écriture en plusieurs lignes.

Il existe une autre classe en JAVA capable de stocker des éléments, c'est la classe List. Contrairement à la classe ArrayList, un objet de cette classe peut être créé et initialisé en une seule ligne. Les deux instructions suivantes ont le même effet :

List couleurs = [Rouge, Bleu, Vert];
List couleurs = Arrays.asList(Rouge, Bleu, Vert);

Le défaut de cette classe est que la liste en question est immuable, on ne peut pas la modifier. Il est cependant possible d'initialiser un objet de la classe ArrayList à partir d'une liste. On obtient ainsi en une ligne de code une liste modifiable.

ArrayList couleurs = new ArrayList<(Arrays.asList(Rouge, Bleu, Vert));

Java