Quelle est la différence entre Collection et Liste en Java?

Quelle est la différence entre Collection et List en Java? Quand devrais-je utiliser lequel?

Tout d’abord: une List est une Collection . C’est une Collection spécialisée, cependant.

Une Collection est juste cela: une collection d’objects. Vous pouvez append des éléments, supprimer des éléments, effectuer des itérations sur des éléments et interroger le contenu.

Une List ajoute les informations sur une séquence définie de choses: Vous pouvez obtenir l’élément à la position n , vous pouvez append un élément à la position n , vous pouvez supprimer l’élément à la position n .

Dans une Collection vous ne pouvez pas faire cela: “le 5ème élément de cette collection” n’est pas défini, car il n’y a pas d’ordre défini.

Il existe également d’autres collections spécialisées, par exemple un Set qui ajoute la caractéristique qu’il ne contiendra jamais deux fois le même élément.

Collection est l’interface racine de la hiérarchie Java Collections. List est une sous-interface qui définit une collection ordonnée, les autres sous-interfaces sont des Queue qui Queue généralement des éléments prêts à être traités (par exemple, une stack ).

Le diagramme suivant illustre la relation entre les différents types de collections Java:

collections java

Java API est le meilleur pour répondre à cette question

Collection

L’interface racine dans la hiérarchie de la collection. Une collection représente un groupe d’objects, appelés ses éléments. Certaines collections permettent des éléments en double et d’autres non. Certains sont commandés et d’autres non ordonnés. Le JDK ne fournit aucune implémentation directe de cette interface: il fournit des implémentations de sous-interfaces plus spécifiques telles que Set et List. Cette interface est généralement utilisée pour faire circuler des collections et les manipuler lorsque la généralité maximale est souhaitée.

Liste (étend Collection)

Une collection ordonnée (également appelée séquence). L’utilisateur de cette interface a un contrôle précis sur l’emplacement de chaque élément dans la liste. L’utilisateur peut accéder aux éléments par leur index entier (position dans la liste) et rechercher des éléments dans la liste.

Contrairement aux ensembles, les listes autorisent généralement les éléments en double. Plus formellement, les listes autorisent généralement des paires d’éléments e1 et e2 tels que e1.equals (e2), et autorisent généralement plusieurs éléments nuls s’ils autorisent des éléments nuls. Il n’est pas inconcevable que quelqu’un souhaite implémenter une liste interdisant les doublons, en lançant des exceptions d’exécution lorsque l’utilisateur tente de les insérer, mais nous pensons que cette utilisation est rare.

List et Set sont deux sous-classes de Collection.

Dans la liste, les données sont dans un ordre particulier.

Dans Set, il ne peut pas contenir les mêmes données deux fois.

Dans Collection, il stocke simplement les données sans ordre particulier et peut contenir des données en double.

Collection est une interface de haut niveau décrivant des objects Java pouvant contenir des collections d’autres objects. Il n’est pas très précis sur la façon dont ils sont accédés, si plusieurs copies d’un même object peuvent exister dans la même collection ou si la commande est importante. La liste est spécifiquement une collection ordonnée d’objects. Si vous placez des objects dans une liste dans un ordre particulier, ils restront dans cet ordre.

Et décider où utiliser ces deux interfaces est beaucoup moins important que de décider quelle est l’implémentation concrète que vous utilisez. Cela aura des implications sur les performances en temps et en espace de votre programme. Par exemple, si vous voulez une liste, vous pouvez utiliser une ArrayList ou une LinkedList, chacune ayant des implications pour l’application. Pour les autres types de collections (par exemple, les ensembles), des considérations similaires s’appliquent.

Collection est l’interface Super de List, donc chaque liste Java est aussi une instance de collection. Les collections ne sont itérables que séquentiellement (et sans ordre particulier), alors qu’une liste permet d’accéder à un élément à une certaine position via la méthode get(int index) .

La collection est l’interface principale de la hiérarchie Java Collections et List (Sequence) est l’une des sous-interfaces qui définit une collection ordonnée.