Es una estructura mutable que almacena valores primitivos (enteros, caracteres, etc.) u objetos. Pueden cambiar el tamaño dinámicamente (frente al tamaño fijo de una matriz).
En Java, dos implementaciones comunes de List son LinkedList y ArrayList.
Para una LinkedList, imagina que estás parado en una fila en el banco. La primera persona en la fila será la primera persona que reciba ayuda; Los clientes recién llegados entran al final de la línea. Las LinkedLists son buenas para almacenar datos que deben tratarse de manera similar. Son excelentes si no sabe cuántos elementos contendrá su lista, y para revisar todos los elementos en orden, pero no son excelentes si necesita acceder a un elemento en el medio de la lista.
- ¿Cuáles son todas las áreas donde las estructuras de datos se aplican en escenarios del mundo real?
- ¿Cuál es el significado de 'orden de crecimiento' en el análisis de algoritmos y cómo podemos encontrar el orden de crecimiento de un algoritmo dado?
- ¿Es la clave de una matriz asociativa una variable?
- Cómo implementar el algoritmo
- ¿Necesitamos un algoritmo 10 veces más rápido o una máquina 10 veces más rápida? Da una razón para justificar tu respuesta.
Las ArrayLists son matrices debajo del capó, por lo que no pueden expandirse más allá del tamaño al que se inicializan. Sin embargo, cuando los datos exceden el espacio asignado, se genera una nueva matriz y todos los datos existentes se transfieren a ella. Obviamente, eso lleva tiempo completar, así que eso es una desventaja. Sin embargo, si necesita acceder a datos en índices aleatorios, las ArrayLists son preferibles a LinkedLists.