196 votes

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

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

1 votes

Interface publique List extends Collection { }

318voto

Joachim Sauer Points 133411

Tout d'abord, un List est un Collection . Il s'agit d'un service spécialisé Collection Cependant.

A Collection n'est rien d'autre qu'une collection d'éléments. Vous pouvez ajouter des éléments, en supprimer, les faire défiler et demander combien il y en a.

A List y ajoute les informations sur une séquence définie d'éléments : Vous pouvez obtenir l'élément à la position n vous pouvez ajouter un élément à la position n vous pouvez retirer l'élément à la position n .

Dans un Collection vous ne pouvez pas faire ça : "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 une Set qui ajoute la caractéristique qu'il ne contiendra jamais deux fois le même élément.

14 votes

Oui, la liste est une spécialisation ordonnée de la collection (mais pas triée) +1

2 votes

La liste en java étend l'interface Collections et construit des fonctions indexées qui aident à la récupération et au retrait en fonction de la position.

211voto

krock Points 13537

Collection est l'interface racine de la hiérarchie des collections de Java. List est une sous interface qui définit une collection ordonnée, les autres sous interfaces sont Queue qui, en général, stocke des éléments prêts à être traités (par ex. pile ).

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

java collections

2 votes

J'aime beaucoup votre image, je l'ai vue lors de la préparation du SCJP mais j'ai presque oublié tout cela ces jours-ci.

1 votes

Je dois admettre que cette image était poché à partir de ce blog . Moi aussi, j'ai vu pour la première fois un diagramme de ce type dans le manuel de l'Union européenne. Livre SCJP de K&B .

0 votes

Vous pouvez apprendre beaucoup du scjp cert, la plupart des livres sur ce sujet sont géniaux :)

10voto

eugener Points 10531

L'API Java est le meilleur moyen de répondre à cette question

Collection

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

Liste (étend la collection)

Une collection ordonnée (également connue sous le nom de séquence). L'utilisateur de cette interface a un contrôle précis de l'endroit où chaque élément est inséré dans la chaque élément est inséré dans la liste. L'utilisateur de utilisateur peut accéder aux éléments par leur indice entier (position dans la liste), et rechercher des éléments dans la liste.

Contrairement aux ensembles, les listes permettent généralement éléments en double. Plus formellement, les listes permettent généralement des paires d'éléments éléments e1 et e2 tels que e1.equals(e2), et elles permettent généralement permettent de multiples éléments nuls s'ils si elles autorisent des éléments nuls. Il n'est pas inconcevable que quelqu'un puisse souhaiter d'implémenter une liste qui interdit les les doublons, en lançant des exceptions d'exécution exceptions à l'exécution lorsque l'utilisateur tente de les insérer, mais nous pensons que cet usage soit rare.

3voto

Daff Points 22358

Collection est la super interface de List, de sorte que toute liste Java est également une instance de collection. Les collections ne sont itérables que de manière séquentielle (et sans ordre particulier) alors qu'une liste permet d'accéder à un élément à une certaine position via la fonction get(int index) méthode.

2voto

Gian Points 9459

Collection est une interface de haut niveau décrivant les objets Java qui peuvent contenir des collections d'autres objets. Elle n'est pas très précise quant à la manière d'y accéder, à la possibilité d'avoir plusieurs copies d'un même objet dans une même collection ou à l'importance de l'ordre. Liste est spécifiquement un commandé une collection d'objets. Si vous placez des objets dans une liste dans un ordre particulier, ils resteront 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 conséquences sur les performances temporelles et spatiales de votre programme. Par exemple, si vous voulez une liste, vous pouvez utiliser une ArrayList ou une LinkedList, chacune d'entre elles ayant des implications pour l'application. Pour les autres types de collections (par exemple, les ensembles), des considérations similaires s'appliquent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X