Sobes.tech
Junior

Quelle est la différence entre List et Set en Java?

sobes.tech IA

Réponse de l'IA

Principales différences:

  1. Ordre des éléments :
    • List conserve l'ordre d'ajout des éléments.
    • Set ne garantit pas l'ordre des éléments (cela dépend de l'implémentation spécifique, par exemple, LinkedHashSet conserve l'ordre d'insertion).
  2. Doublons :
    • List permet de stocker des éléments en double.
    • Set ne stocke que des éléments uniques.
  3. Accès aux éléments :
    • List permet d'accéder aux éléments par indice.
    • Set ne fournit pas d'accès direct aux éléments par indice, l'accès se fait via un itérateur ou une boucle.
  4. Performance :
    • Les opérations de recherche et d'ajout dans List avec beaucoup d'éléments peuvent être plus lentes que dans Set (par exemple, dans HashSet).
    • Les opérations d'ajout et de suppression dans Set (par exemple, HashSet) ont généralement une complexité temporelle moyenne constante.

Exemple :

// Liste permettant les doublons et conservant l'ordre
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple");
System.out.println(list); // Affiche : [Apple, Banana, Apple]

// Ensemble ne permettant que des éléments uniques
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple");
System.out.println(set); // Affiche : [Apple, Banana] (l'ordre peut varier)

Tableau comparatif :

Aspect List Set
Ordre Conservé Non garanti (dépend de l'implémentation)
Doublons Autorisés Non autorisés
Accès par indice Oui Non
Interface java.util.List java.util.Set
Usage typique Collections ordonnées, listes Collections uniques, ensembles