Réponses:
Tout d'abord: a List
est a Collection
. C'est Collection
cependant un spécialiste .
Un Collection
est juste cela: une collection d'articles. Vous pouvez ajouter des éléments, supprimer des éléments, parcourir des éléments et interroger la quantité d'éléments qui s'y trouvent.
A y List
ajoute les informations sur une séquence définie de trucs: Vous pouvez obtenir l'élément à la position n , vous pouvez ajouter un élément à la position n , vous pouvez supprimer l'élément à la position n .
Dans un, 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 a Set
qui ajoute la fonctionnalité selon laquelle il ne contiendra jamais deux fois le même élément.
Collection
est l'interface racine de la hiérarchie des collections java. List
est une sous-interface qui définit une collection ordonnée, d'autres sous-interfaces sont Queue
généralement qui stockent des éléments prêts à être traités (par exemple, la pile ).
Le diagramme suivant illustre la relation entre les différents types de collection Java:
Map
n'est pas un Collection
.
L'API Java est la meilleure pour répondre à cela
Collection
L'interface racine dans la hiérarchie de la collection. Une collection représente un groupe d'objets, appelés ses éléments. Certaines collections autorisent la duplication d'éléments et d'autres non. Certains sont commandés et d'autres non commandés. Le JDK ne fournit aucune implémentation directe de cette interface: il fournit des implémentations de sous-interfaces plus spécifiques comme Set et List. Cette interface est généralement utilisée pour transmettre des collections et les manipuler là où une généralité maximale est souhaitée.
Liste (étend la collection)
Une collection ordonnée (également appelée séquence). L'utilisateur de cette interface a un contrôle précis sur l'endroit où dans la liste 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.
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 telles que e1.equals (e2), et elles autorisent généralement plusieurs éléments nuls si elles autorisent des éléments nuls. Il n'est pas inconcevable que quelqu'un veuille implémenter une liste qui interdit les doublons, en lançant des exceptions d'exécution lorsque l'utilisateur tente de les insérer, mais nous nous attendons à ce que cette utilisation soit rare.
List et Set sont deux sous-classes de Collection.
Dans List, les données sont dans un ordre particulier.
Dans Set, il ne peut pas contenir deux fois les mêmes données.
Dans Collection, il ne stocke que des données sans ordre particulier et peut contenir des données en double.
Collection est une interface de haut niveau décrivant des objets Java pouvant contenir des collections d'autres objets. Il n'est pas très précis sur la manière dont ils sont accessibles, si plusieurs copies du même objet peuvent exister dans la même collection ou si l'ordre est important. La liste est spécifiquement un ordre 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 implications sur les performances spatio-temporelles de votre programme. Par exemple, si vous voulez une liste, vous pouvez utiliser une ArrayList ou une LinkedList, dont chacune aura des implications pour l'application. Pour les autres types de collection (par exemple, les ensembles), des considérations similaires s'appliquent.
Collection est la super interface de List, donc chaque liste Java est également 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 get(int index)
méthode.