Introduction
En Java, nous pouvons initialiser une liste en une seule ligne de code en utilisant diverses approches. Dans ce laboratoire, nous allons apprendre différentes méthodes pour initialiser des listes en Java de manière concise.
💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici
En Java, nous pouvons initialiser une liste en une seule ligne de code en utilisant diverses approches. Dans ce laboratoire, nous allons apprendre différentes méthodes pour initialiser des listes en Java de manière concise.
Nous pouvons créer une liste à partir d'un tableau en utilisant la méthode asList()
. Cette méthode prend directement les éléments en paramètres et renvoie une liste de taille fixe. Si on tente d'ajouter un élément, une UnsupportedOperationException
est levée.
import java.util.Arrays;
import java.util.List;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = Arrays.asList("red", "blue", "green");
System.out.print("Colors List : " + colorsList); //Sortie : [red, blue, green]
}
}
Pour exécuter le code, ouvrez une invite de commande, accédez au répertoire du projet et exécutez les commandes suivantes :
javac ListInitializationDemo.java
java ListInitializationDemo
Les flux Java peuvent être utilisés pour créer une liste à partir des éléments du flux en utilisant la méthode collect()
.
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = Stream.of("red", "blue", "green")
.collect(Collectors.toList());
System.out.print("Colors List : " + colorsList); //Sortie : [red, blue, green]
}
}
Pour exécuter le code, ouvrez une invite de commande, accédez au répertoire du projet et exécutez les commandes suivantes :
javac ListInitializationDemo.java
java ListInitializationDemo
Java 9 fournit une méthode List.of() surchargée pour les listes mutables et immuables.
import java.util.List;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = List.of("red", "blue", "green");
System.out.print("Colors List : " + colorsList); //Sortie : [red, blue, green]
}
}
Pour exécuter le code, ouvrez une invite de commande, accédez au répertoire du projet et exécutez les commandes suivantes :
javac ListInitializationDemo.java
java ListInitializationDemo
L'initialisation à double accolade peut être utilisée pour une classe interne anonyme pour initialiser une liste.
import java.util.List;
import java.util.ArrayList;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = new ArrayList<String>() {
{
add("red");
add("blue");
add("green");
}
};
System.out.print("Colors List : " + colorsList); //Sortie : [red,blue,green]
}
}
Pour exécuter le code, ouvrez une invite de commande, accédez au répertoire du projet et exécutez les commandes suivantes :
javac ListInitializationDemo.java
java ListInitializationDemo
Apache Commons Collections fournit la méthode unmodifiableList()
qui renvoie une vue non modifiable de la liste spécifiée.
import java.util.List;
import org.apache.commons.collections4.ListUtils;
import java.util.Arrays;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = ListUtils.unmodifiableList(
Arrays.asList("red", "blue", "green")
);
System.out.print("Colors List : " + colorsList); //Sortie : [red,blue,green]
}
}
Pour exécuter le code, ouvrez le terminal, accédez au répertoire du projet et exécutez les commandes suivantes :
javac -cp commons-collections4-4.4.jar ListInitializationDemo.java
java -cp commons-collections4-4.4.jar:. ListInitializationDemo
La bibliothèque Guava fournit la méthode newArrayList()
qui renvoie une ArrayList mutable initialisée avec les éléments.
import java.util.List;
import com.google.common.collect.Lists;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = Lists.newArrayList("red", "blue", "green");
System.out.print("Colors List : " + colorsList); //Sortie : [red,blue,green]
}
}
Pour exécuter le code, ouvrez le terminal, accédez au répertoire du projet et exécutez les commandes suivantes :
javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo
Guava fournit également la classe ImmutableList qui renvoie une liste immuable.
import java.util.List;
import com.google.common.collect.ImmutableList;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = ImmutableList.of("red", "blue", "green");
System.out.print("Colors List : " + colorsList); //Sortie : [red,blue,green]
}
}
Pour exécuter le code, ouvrez le terminal, accédez au répertoire du projet et exécutez les commandes suivantes :
javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo
En Java, il existe de nombreux moyens d'initialiser une liste en une seule ligne de code. Nous avons vu comment utiliser les flux Java 8 pour créer une liste, l'utilisation de la méthode Arrays.asList()
et de la méthode List.of()
pour les versions de Java postérieures à 9. Nous avons également vu l'initialisation à double accolade et un exemple de l'utilisation de bibliothèques Java externes telles que Apache Commons Collections et Guava.