¿Cuál es la diferencia entre Collection y List en Java? ¿Cuándo y cuál debería usar?¿Cuál es la diferencia entre Collection y List en Java?
Respuesta
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.
sí, la lista es una especialización ordenada de la recopilación (pero no está ordenada) +1 – atamanroman
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
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:
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. –
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
puedes aprender mucho del scjp cert, la mayoría de los libros sobre este tema son impresionantes :) – atamanroman
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.
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)
.
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.
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.
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.
- 1. ¿Cuál es la diferencia entre list y list [:] en python?
- 2. ¿Cuál es la diferencia entre list [-1:] [0] y list [len (list) -1]?
- 3. ¿Cuál es la diferencia entre @ + id/android: list y @ + id/list
- 4. ¿Cuál es la diferencia entre referencias y objetos en Java?
- 5. ¿Cuál es la diferencia entre a.getClass() y A.class en Java?
- 6. ¿Cuál es la diferencia entre interfaz y @interface en java?
- 7. ¿Cuál es la diferencia entre booleano y booleano en Java?
- 8. ¿Cuál es la diferencia entre? y Object en genéricos Java?
- 9. ¿Cuál es la diferencia entre int.class y Integer.TYPE en java?
- 10. ¿Cuál es la diferencia entre Boolean.TRUE y true en Java?
- 11. ¿Cuál es la diferencia entre Future y FutureTask en Java?
- 12. ¿Cuál es la diferencia entre + = y = +?
- 13. Ohmios y Redis: cuando usar set, list o collection?
- 14. ¿Cuál es la diferencia entre Java RMI y RPC?
- 15. ¿Cuál es la diferencia entre Java RMI y JMS?
- 16. Java: ¿Cuál es la diferencia entre autoboxing y casting?
- 17. ¿Cuál es la diferencia entre java y jsp?
- 18. ¿Cuál es la diferencia entre scala @Serializable y Java Serializable?
- 19. ¿Cuál es la diferencia entre Java 1.6 y 1.7 jarsigner
- 20. ¿Cuál es la diferencia entre JavaScript y Java?
- 21. ¿Cuál es la diferencia entre :: ::: y en Scala
- 22. ¿Cuál es la diferencia entre EqualTo() y EquivalentTo() en NUnit?
- 23. ¿Cuál es la diferencia entre IEnumerable y Array, IList y List?
- 24. ¿cuál es la diferencia entre:.! y: r !?
- 25. ¿Cuál es la diferencia entre ".equals" y "=="?
- 26. Cuál es la diferencia entre $ y jQuery
- 27. Cuál es la diferencia entre = y: =
- 28. Cuál es la diferencia entre $ (...) y `...`
- 29. ¿Cuál es la diferencia entre dict() y {}?
- 30. ¿Cuál es la diferencia entre [indefinido] y [,]?
interfaz pública List extends Collection {} –