Respuestas:
Primero apagado: a List
es a Collection
. Es un especializado Collection
, 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.
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 Queue
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:
Map
que no es un Collection
.
La API de Java es la mejor para responder esto
Colección
La interfaz raíz en la jerarquía de colección. Una colección representa un grupo de objetos, conocidos como sus elementos. Algunas colecciones permiten elementos duplicados y otras no. Algunos son ordenados y otros no ordenados. El JDK no proporciona implementaciones directas de esta interfaz: proporciona implementaciones de subinterfaces más específicas como Set y List. Esta interfaz se usa generalmente para pasar colecciones y manipularlas donde se desea la máxima generalidad.
Lista (se extiende Colección)
Una colección ordenada (también conocida como secuencia). El usuario de esta interfaz tiene un control preciso sobre dónde se inserta cada elemento en la lista. 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 de modo que e1.equals (e2), y generalmente permiten múltiples elementos nulos si 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 raro.
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.
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.
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.