¿Cuál es la diferencia entre Collection
y List
en Java? ¿Cuándo debo usar cuál?
java
collections
Truong Ha
fuente
fuente
Respuestas:
Primero apagado: a
List
es aCollection
. Es un especializadoCollection
, sin embargo.A
Collection
es solo eso: una colección de artículos. Puede agregar cosas, eliminar cosas, iterar sobre ellas y consultar cuánto hay allí.A
List
agrega la 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
Collection
no puede 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.fuente
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 subinterfacesQueue
que normalmente almacenan elementos listos para el procesamiento (por ejemplo, pila ).El siguiente diagrama muestra la relación entre los diferentes tipos de colección de Java:
fuente
Map
que no es unCollection
.La API de Java es la mejor para responder esto
Colección
Lista (se extiende Colección)
fuente
List y Set son dos subclases de Collection.
En la Lista, los datos están en un orden particular.
En Set, no puede contener los mismos datos dos veces.
En Collection, solo almacena datos sin un orden particular y puede contener datos duplicados.
fuente
Collection es una interfaz de alto nivel que describe objetos Java que pueden contener colecciones de otros objetos. No es muy específico acerca de cómo se accede a ellos, si pueden existir múltiples copias del mismo objeto en la misma colección, o si el orden es importante. La lista es específicamente un pedido colección de objetos. Si coloca objetos en una Lista en un orden particular, permanecerán en ese orden.
Y decidir dónde usar estas dos interfaces es mucho menos importante que decidir cuál es la implementación concreta que usa. Esto tendrá implicaciones para el rendimiento en tiempo y espacio de su programa. Por ejemplo, si desea una lista, puede usar una ArrayList o LinkedList, cada una de las cuales tendrá implicaciones para la aplicación. Para otros tipos de colección (por ejemplo, Conjuntos), se aplican consideraciones similares.
fuente
Collection es la interfaz Super de List, por lo que cada lista Java es también una instancia de colección. Las colecciones solo son iterables secuencialmente (y sin ningún orden en particular), mientras que una Lista permite el acceso a un elemento en una determinada posición a través del
get(int index)
método.fuente
Collection es la interfaz principal de la jerarquía de colecciones de Java y List (Sequence) es una de las subinterfaces que define una colección ordenada.
fuente