Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Por qué un List<Map<>> en vez de un ArrayList<Map<>>?

Curso: Java y JDBC: Trabajando con una Base de Datos Clase: 02. Ejecutando comandos SQL en Java Video: 05 Listado con Statement #2 Minuto: 02:48 Cuando dice: "Ahí tenemos un resultado. Y este List, que no es un ArrayList, va a ser un List...".

Mi pregunta es por qué utiliza una interface List en vez de un ArrayList? Probé cambiando entre uno y otro para ver si había un resultado diferente, pero no pude apreciar ninguno a simple vista. Entonces, me surge la duda de cómo determinar si utilizo uno u otro.

De antemano, gracias por las respuestas!

Imagen del código donde se utiliza List en vez de ArrayList

3 respuestas
solución!

La elección entre List e ArrayList depende de lo que se quiera lograr en el programa. Ambas son interfaces de la librería de colecciones de Java y tienen sus propias ventajas y desventajas.

List es una interfaz que define un comportamiento para una secuencia ordenada de elementos. Proporciona una serie de métodos que permiten agregar, eliminar y obtener elementos de la lista. ArrayList, por otro lado, es una implementación concreta de la interfaz List. Se basa en un arreglo dinámico para almacenar los elementos y tiene una capacidad inicial predeterminada. A medida que se agregan elementos, la capacidad del arreglo se ajusta automáticamente para acomodarlos.

Entonces, ¿cuál deberias de usar? Depende de las necesidades específicas. Si tu programa requiere un acceso rápido a los elementos en la lista y no necesita agregar o eliminar elementos con frecuencia, ArrayList puede ser la mejor opción debido a su eficiencia en el acceso a elementos en índices específicos. Si necesita agregar y eliminar elementos con frecuencia, LinkedList puede ser una mejor opción, ya que proporciona una mayor eficiencia para estas operaciones.

En resumen, List es la interfaz que define un comportamiento común a todas las implementaciones de lista, mientras que ArrayList es una implementación concreta de List que utiliza un arreglo dinámico para almacenar los elementos. La elección de cuál usar depende de las necesidades específicas del programa.

Excelene info y explicación muchisimas gracias

Hola Mike,

No se porque marcaron como solución la respuesta de Sebas sino respondió la pregunta, solo copio y pego una respuesta de ChatGPT.

Pra responder a porqué List<Map<>> en vez de un ArrayList<Map<>>?

  1. Si bien como dices noy hay diferencia funcional entre ambos, al usar List o incluso Set vas a poder modificar la implementación (por arraylist, linkedlist etc):

`List<Map<String, String>> resultado = new LinkedList<>()

o

List<Map<String, String>> resultado = new Vector<>()

o

Set<Map<String, String>> resultado = new HashSet<>() ` etc.

Por cierto la maner amas rpaida de acceder por ID a los elementos de un arreglo no es con ArrayList sería con un HashSet.