Comment créer une nouvelle liste en Java

Hassan Saeed 12 octobre 2023
  1. Créer une nouvelle liste vide en Java
  2. Créer une nouvelle liste non vide en Java
  3. Créer une liste non vide de taille fixe en Java
Comment créer une nouvelle liste en Java

Ce tutoriel traite des méthodes permettant de créer différents types de listes en Java.

List en Java est une interface et est implémentée par ArrayList, LinkedList, Vector et Stack. Elle fournit une collection ordonnée d’objets. L’utilisateur a un contrôle précis sur l’endroit de la liste où chaque élément est inséré. L’utilisateur peut accéder aux éléments par leur index entier (position dans la liste) et rechercher des éléments dans la liste. De plus, les listes permettent également de stocker des éléments en double.

Créer une nouvelle liste vide en Java

Comme List est une interface, nous ne pouvons pas créer un objet List directement. Cependant, nous pouvons créer des objets des classes qui implémentent l’interface List: ArrayList, LinkedList, Vector et Stack. Voici un moyen simple:

List myArrayList = new ArrayList();
List myLinkedList = new LinkedList();
List myVector = new Vector();
List myStack = new Stack();

Ces types de Listes n’ont pas de type de données spécifique et peuvent contenir n’importe quel type d’objets et de valeurs. Essayons de les créer en Java et d’y ajouter des valeurs.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    // ArrayList
    List myArrayList = new ArrayList();
    myArrayList.add(1);
    myArrayList.add(2);
    myArrayList.add("three");
    System.out.println("ArrayList: " + myArrayList);

    // LinkedList
    List myLinkedList = new LinkedList();
    myLinkedList.add(4);
    myLinkedList.add(5);
    myLinkedList.add("six");
    System.out.println("LinkedList: " + myLinkedList);

    // Stack
    List myStack = new Stack();
    myStack.add(7);
    myStack.add(8);
    myStack.add("nine");
    System.out.println("Stack: " + myStack);
  }
}

Les sorties de code ci-dessus:

ArrayList: [1, 2, three]
LinkedList: [4, 5, six]
Stack: [7, 8, nine]

Nous pouvons voir que nous avons ajouté des valeurs int et String aux listes sans aucune erreur.

Il est possible de spécifier le type de données de telle sorte que seules les valeurs de ce type particulier puissent être stockées. Essayons un autre exemple.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    // ArrayList
    List<Integer> myArrayList = new ArrayList<>();
    myArrayList.add(1);
    myArrayList.add(2);
    myArrayList.add("three");
    System.out.println("ArrayList: " + myArrayList);
  }
}

Le code ci-dessus entraîne l’erreur suivante.

> /myClass.java:9: error: incompatible types: String cannot be converted to Integer
>         myArrayList.add("three");

C’est parce qu’en créant l’objet ArrayList, nous avons spécifié que le type de données était Integer; par conséquent, il n’acceptera aucun autre type de données.

Créer une nouvelle liste non vide en Java

Nous avons discuté de la manière de créer des objets vides de la liste et d’ajouter ensuite des objets à la liste. Voyons maintenant une autre façon de créer une liste avec des objets.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    List<String> list = new ArrayList<String>() {
      {
        add("a");
        add("b");
      }
    };
    System.out.println("ArrayList: " + list);
  }
}

Les sorties de code ci-dessus:

ArrayList: [a, b]

Créer une liste non vide de taille fixe en Java

Nous pouvons également créer une liste non vide de taille fixe. Si c’est le cas, des opérations comme add, remove ne seront pas supportées.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    List<Integer> list = Arrays.asList(1, 2);
    System.out.println("ArrayList: " + list);
  }
}

Les sorties de code ci-dessus:

ArrayList: [1, 2]

Voyons ce qui se passe si nous essayons d’ajouter un autre élément à cette liste.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    List<Integer> list = Arrays.asList(1, 2);
    list.add(3);
    System.out.println("ArrayList: " + list);
  }
}

Le code ci-dessus donne l’erreur suivante puisqu’il ne permet pas des opérations comme add, remove, etc:

> Exception in thread "main" java.lang.UnsupportedOperationException
> 	at java.base/java.util.AbstractList.add(AbstractList.java:153)
> 	at java.base/java.util.AbstractList.add(AbstractList.java:111)
> 	at myClass.main(myClass.java:6)

Cependant, vous pouvez changer la valeur à n’importe quelle position donnée dans ce type de liste.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    List<Integer> list = Arrays.asList(1, 2);
    System.out.println("Initial ArrayList: " + list);
    list.set(1, 3);
    System.out.println("Changed ArrayList: " + list);
  }
}

Le code ci-dessus donne l’erreur suivante:

Initial ArrayList: [1, 2]
Changed ArrayList: [1, 3]

Nous savons maintenant comment créer différents types de listes en Java.

Article connexe - Java List