¿Cuál es la diferencia entre Colección y Lista en Java?
¿ Cuál es la diferencia entre Collection
y List
en Java? ¿Cuándo debo usar cuál?
En primer lugar: a List
es a Collection
. Es un especializado Collection
, sin embargo.
A Collection
es solo eso: una colección de elementos. Puede agregar cosas, eliminar cosas, iterar sobre cosas y consultar cuántas cosas hay allí.
A List
le agrega información sobre una secuencia definida de cosas: puede obtener el elemento en la posición n , puede agregar un elemento en la posición n , puede eliminar el elemento en la posición n .
En un caso Collection
, no puedes hacer eso: "el quinto elemento de esta colección" no está definido porque no hay un orden definido.
También hay otras colecciones especializadas, por ejemplo una Set
que agrega la característica de que nunca contendrá el mismo elemento dos veces.
Collection
es la interfaz raíz de la jerarquía de colecciones de Java. List
es una subinterfaz que define una colección ordenada, otras subinterfaces son Queue
las que normalmente almacenarán elementos listos para su procesamiento (por ejemplo, pila ).
El siguiente diagrama demuestra la relación entre los diferentes tipos de colecciones de Java:
La API de Java es la mejor para responder a esto.
Recopilación
La interfaz raíz en la jerarquía de la colección. Una colección representa un grupo de objetos, conocidos como sus elementos. Algunas colecciones permiten elementos duplicados y otras no. Algunas están ordenadas y otras desordenadas. El JDK no proporciona ninguna implementación directa de esta interfaz: proporciona implementaciones de subinterfaces más específicas como Set y List. Esta interfaz se utiliza normalmente para pasar colecciones y manipularlas cuando se desea la máxima generalidad.
Lista (extiende la colección)
Una colección ordenada (también conocida como secuencia). El usuario de esta interfaz tiene un control preciso sobre en qué lugar de la lista se inserta cada elemento. El usuario puede acceder a los elementos por su índice entero (posición en la lista) y buscar elementos en la lista.
A diferencia de los conjuntos, las listas suelen permitir elementos duplicados. Más formalmente, las listas normalmente permiten pares de elementos e1 y e2 tales que e1.equals(e2), y normalmente permiten múltiples elementos nulos si es que permiten elementos nulos. No es inconcebible que alguien desee implementar una lista que prohíba los duplicados, lanzando excepciones de tiempo de ejecución cuando el usuario intenta insertarlos, pero esperamos que este uso sea poco común.
List y Set son dos subclases de Collection.
En Lista, los datos están en un orden particular.
En Set, no puede contener los mismos datos dos veces.
En Colección, simplemente almacena datos sin ningún orden particular y puede contener datos duplicados.