Junior
Quelle est la différence entre List et Set en Java?
sobes.tech IA
Réponse de l'IA
Principales différences:
- Ordre des éléments :
Listconserve l'ordre d'ajout des éléments.Setne garantit pas l'ordre des éléments (cela dépend de l'implémentation spécifique, par exemple,LinkedHashSetconserve l'ordre d'insertion).
- Doublons :
Listpermet de stocker des éléments en double.Setne stocke que des éléments uniques.
- Accès aux éléments :
Listpermet d'accéder aux éléments par indice.Setne fournit pas d'accès direct aux éléments par indice, l'accès se fait via un itérateur ou une boucle.
- Performance :
- Les opérations de recherche et d'ajout dans
Listavec beaucoup d'éléments peuvent être plus lentes que dansSet(par exemple, dansHashSet). - Les opérations d'ajout et de suppression dans
Set(par exemple,HashSet) ont généralement une complexité temporelle moyenne constante.
- Les opérations de recherche et d'ajout dans
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 |