2010-07-23 19 views

Respuesta

192

En primer lugar, un List es un Collection. Sin embargo, es un Collection especializado.

A 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í.

Un List añade la información sobre una secuencia definida de cosas a la misma: Usted puede obtener el elemento en la posición n, se puede añadir un elemento en la posición n, puede quitar el elemento en la posición n .

En un Collection no puede hacer eso: "el quinto elemento en esta colección" no está definido, porque no hay un orden definido.

También hay otras colecciones especializadas, por ejemplo, Set, que agrega la función de que nunca contendrá el mismo elemento dos veces.

+6

sí, la lista es una especialización ordenada de la recopilación (pero no está ordenada) +1 – atamanroman

+2

La lista en java extiende la interfaz de colecciones y crea funciones indexadas que ayudan en la recuperación basada en la posición y el comportamiento de eliminación – frictionlesspulley

137

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 interfaces secundarias son Queue que típicamente almacenarán elementos listos para el procesamiento (por ejemplo, stack).

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

java collections

+0

Realmente me gusta su imagen, la he visto cuando me estaba preparando para SCJP, pero casi me olvido de todo eso en estos días. –

+1

Debo admitir que esta imagen fue [saqueada de este blog] (http://www.programcreek.com/2009/02/the-interface-and-class-hierarchy-for-collections/). Yo también vi por primera vez un diagrama como este en el [libro de K & B SCJP] (http://www.amazon.com/SCJP-Certified-Programmer-Java-310-065/dp/0071591060/). – krock

+0

puedes aprender mucho del scjp cert, la mayoría de los libros sobre este tema son impresionantes :) – atamanroman

2

Collection es una interfaz de alto nivel que describe los objetos de 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 de objetos ordenados. 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 utiliza. 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 colecciones (por ejemplo, conjuntos), se aplican consideraciones similares.

2

Collection es la interfaz súper 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).

7

API de Java es la mejor manera de responder a esta

Colección

La interfaz raíz de la colección jerarquía.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 de esta interfaz: proporciona implementaciones de más subinterfaces específicas como Set y List. Esta interfaz se usa generalmente para pasar las colecciones y manipularlas donde se desee la generalización máxima de .

Lista (se extiende Collection)

Colección ordenada (también conocida como una 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 normalmente permiten elementos duplicados. Más formalmente, las listas suelen permitir pares de elementos e1 y e2 de modo que e1.equals (e2), y normalmente permiten múltiples elementos nulos si permiten elementos nulos. No es inconcebible que alguien pueda desear para implementar una lista que prohíbe duplicados, lanzando tiempo de ejecución excepciones cuando los intentos de los usuarios a los insertan , pero esperamos que este uso a ser raro.

2

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

0

List and Set son dos subclases de Collection.

En la lista, los datos están en un orden particular.

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

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

Cuestiones relacionadas