Quelle est la différence entre Collection
et List
en Java? Quand devrais-je utiliser lequel?
java
collections
Truong Ha
la source
la source
Réponses:
Tout d'abord: a
List
est aCollection
. C'estCollection
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.la source
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 sontQueue
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:
la source
Map
n'est pas unCollection
.L'API Java est la meilleure pour répondre à cela
Collection
Liste (étend la collection)
la source
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.
la source
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.
la source
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.la source
Collection est l'interface principale de la hiérarchie des collections Java et List (Sequence) est l'une des sous-interfaces qui définit une collection ordonnée.
la source