framework example español collection colecciones java collections

example - ¿Cuál es la diferencia entre Collection y List en Java?



map java (7)

Collection es la interfaz principal de la jerarquía de Colecciones Java y List (Sequence) es una de las interfaces secundarias que define una colección ordenada.

¿Cuál es la diferencia entre Collection y List en Java? ¿Cuándo debería usar cuál?


La API de Java es la mejor para responder a esto

Colecció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. Algunos están ordenados y otros no ordenados. 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 generalmente se usa para pasar colecciones y manipularlas donde se desea la máxima generalidad.

Lista (extiende Colección)

Una colección ordenada (también conocida como secuencia). El usuario de esta interfaz tiene un control preciso sobre en qué parte 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 generalmente permiten elementos duplicados. Más formalmente, las listas generalmente permiten pares de elementos e1 y e2 tales que e1.equals (e2), y normalmente permiten múltiples elementos nulos si permiten elementos nulos en absoluto. 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 raro.


List y Set son dos subclases de Collection.

En List, los datos están en orden particular.

En Set, no puede contener los mismos datos dos veces.

En Collection, simplemente almacena datos sin ningún orden en particular y puede contener datos duplicados.


Primero, una List es una Collection . Sin embargo, es una Collection especializada.

Una Collection es solo eso: una colección de artículos. Puede agregar cosas, eliminar cosas, iterar sobre cosas y consultar cuántas cosas hay allí.

Una 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 una 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, un 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 interfaz secundaria que define una Colección ordenada, otras subinterfaces son Queue que típicamente almacenarán los elementos listos para el procesamiento (por ejemplo, stack ).

El siguiente diagrama muestra la relación entre los diferentes tipos de colección java:


Collection es la interfaz Super de List, por lo que cada lista de Java es también una instancia de colección. Las colecciones solo son iterables secuencialmente (y sin ningún orden particular), mientras que una Lista permite el acceso a un elemento en una determinada posición a través del método get(int index) .


Collection es una interfaz de alto nivel que describe objetos Java que pueden contener colecciones de otros objetos. No es muy específico sobre cómo se accede, si pueden existir múltiples copias del mismo objeto en la misma colección o si el pedido es importante. La lista es específicamente una colección ordenada 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 el tiempo y el espacio de su programa. Por ejemplo, si desea una lista, puede usar una ArrayList o una 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.