0% encontró este documento útil (0 votos)
86 vistas3 páginas

Diferencias entre List y ArrayList en Java

Stack Overflow en español es un sitio web para programadores donde pueden hacer y responder preguntas sobre temas de programación. Los usuarios pueden registrarse gratis en el sitio y participar en la comunidad planteando y respondiendo preguntas de otros usuarios. Las mejores respuestas se destacan en la parte superior basadas en los votos de la comunidad.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
86 vistas3 páginas

Diferencias entre List y ArrayList en Java

Stack Overflow en español es un sitio web para programadores donde pueden hacer y responder preguntas sobre temas de programación. Los usuarios pueden registrarse gratis en el sitio y participar en la comunidad planteando y respondiendo preguntas de otros usuarios. Las mejores respuestas se destacan en la parte superior basadas en los votos de la comunidad.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Stack Overflow en español es un sitio de

preguntas y respuestas para


programadores y profesionales de la
informática. Solo te toma un minuto
registrarte.

Regístrate para unirte a esta comunidad

Cualquiera puede formular una pregunta

Cualquiera puede responder

Se vota a favor de las


mejores respuestas, y éstas
suben a los primeros puestos

¿List o ArrayList en Java?


Formulada hace 2 años y 7 meses Activa hace 2 años y 7 meses Vista 18k veces

¿Cuál es la diferencia entre las siguientes implementaciones?

1 ArrayList<String> xxx = new ArrayList<>();


List<String> zzz = new ArrayList<>();

java
3

Compartir Mejora esta pregunta Seguir formulada el 7 jun. 18 a las 20:55


Orici
6,521 3 25 54

3 respuestas Activo Más antiguo Votos

List es una colección, y una colección puede ser interfaces y clase abstracta que nos permite
identificar los objetos independientemente de la implementación. Es decir, son genéricas.
4
Mientras, un ArrayList es contenedor que contiene una implementación de la colección List.

Aquí puedes ver un ejemplo de las colecciones y sus relaciones en Java:


https://en.proft.me/2013/11/3/java-collection-framework-cheat-sheet/

En base a esto, List es una interfaz genérica que representa una colección ordenada de
elementos que pueden repetirse.
Mientras, dos listas de propósito general serían las clases LinkedList y ArrayList y de
propósito específico, Vector y CopyOnWriteArrayList.

En tu duda, la ArrayList es un array que se maneja como una clase y no tiene tamaño fijo.
Es eficiente cuando se realizan muchos acceso y en este caso los elementos se añaden al
final. Permite que se puedan eliminar elementos intermedios, pero eso provocará un
desplazamiento de índices.

En cambio, para una clase LinkedList tendremos una lista enlazada en la que los elementos
se añaden en cualquier parte de la lista muy fácilmente. Aquí, para encontrar un elemento
hay que recorrer la lista. Es eficiente cuando el tamaño fluctúa y sobre todo en posiciones
centrales.

¿Qué sucede si utilizas List como lo haces en tu caso?, que podrías cambiar el tipo de zzz a
LinkedList en su definición y todo sería compatible 100% y fácilmente. No obstante, en el
primer caso de xxx tendrías que cambiar en todos los sitios el tipo debido a que estas

implementando un ArrayList y podrías tener problemas si lo cambias a LinkedLIst. Por eso


se recomienda el uso de List, como lo haces de zzz.

Compartir Mejora esta respuesta editada el 7 jun. 18 a las 22:00 respondida el 7 jun. 18 a las 21:10
Seguir Orici CGG
6,521 3 25 54 471 1 6 8

public static void insert(List<Dato> datos) {


for(Dato dato:datos){
0 db.executeUpdate("insert into datos(desc,cantidad) values(:desc,:cantidad)",
new Object[]{dato.getDescripcion(),dato.getCantidad()});
}
}

public static void insert(Dato[] datos) {


for(Dato dato:datos){
db.executeUpdate("insert into datos(desc,cantidad) values(:desc,:cantidad)",
new Object[]{dato.getDescripcion(),dato.getCantidad()});
}
}

Como puedes ver, es prácticamente lo mismo, la diferencia es que al invocar el primer


método puedes pasar como párametro un ArrayList, LinkedList, Vector o tu propia clase que
implemente la interfaz List

un enlace que te puede ayudar https://stackoverflow.com/questions/716597/array-or-list-in-


java-which-is-faster

Compartir Mejora esta respuesta Seguir respondida el 7 jun. 18 a las 21:08


Camilo Andres
1
List es una interface mientras que ArrayList es una de las tantas implementaciones de la
interface List (a su vez List extiende de la interface Collection).
0
A priori, entonces, no hay diferencia, polimórficamente vas a estar trabajando con un
ArrayList. Pero me parece mas correcto usar la segunda sentencia y trabajar contra la
interface y nunca contra el tipo concreto. De esta manera tenes la flexibilidad de instanciar
otra implementación diferente de la interface List (LinkedList por ejemplo) y tu código va a
seguir funcionando igual, gracias a que los contratos se mantienen.

Compartir Mejora esta respuesta Seguir respondida el 7 jun. 18 a las 21:13


Alejandro Giorgi
326 1 5

También podría gustarte