¿Cuál es la diferencia entre Colección y Lista en Java?

Resuelto Truong Ha asked hace 14 años • 7 respuestas

¿ Cuál es la diferencia entre Collectiony Listen Java? ¿Cuándo debo usar cuál?

Truong Ha avatar Jul 23 '10 17:07 Truong Ha
Aceptado

En primer lugar: a Listes a Collection. Es un especializado Collection, sin embargo.

A Collectiones solo eso: una colección de elementos. Puede agregar cosas, eliminar cosas, iterar sobre cosas y consultar cuántas cosas hay allí.

A Listle 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 Setque agrega la característica de que nunca contendrá el mismo elemento dos veces.

Joachim Sauer avatar Jul 23 '2010 10:07 Joachim Sauer

Collectiones la interfaz raíz de la jerarquía de colecciones de Java. Listes una subinterfaz que define una colección ordenada, otras subinterfaces son Queuelas 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:

colecciones java

krock avatar Jul 23 '2010 10:07 krock

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.

Eugene Ryzhikov avatar Jul 23 '2010 10:07 Eugene Ryzhikov

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.

S'chn T'gai Spock avatar Oct 12 '2016 10:10 S'chn T'gai Spock