Ir al contenido

Definición

Las colecciones en Java permiten agrupar y manipular objetos de forma dinámica. A diferencia de los arreglos tradicionales, no requieren que se conozca su tamaño al momento de la declaración.


Diferencias clave entre arreglos y colecciones

Sección titulada «Diferencias clave entre arreglos y colecciones»
  • Arreglos (array):

    • Poseen tamaño fijo.
    • Se almacenan en bloques contiguos de memoria.
    • Para cambiar su tamaño, es necesario crear un nuevo arreglo y copiar manualmente los elementos.
  • Colecciones (como ArrayList):

    • Crecen dinámicamente.
    • Manejan automáticamente la expansión de su capacidad interna.
  • Arreglos:

    • Pueden almacenar tipos primitivos (int, double, etc.) y objetos.
  • Colecciones:

    • Limitadas a tipos objeto, ya que utilizan genéricos (<T>).

    • Esto excluye tipos primitivos, pero se puede utilizar autoboxing con clases envolventes como:

      • Integer para int
      • Double para double
      • Boolean para boolean, etc.

  • Utiliza internamente un arreglo de tipo Object[].

  • Este arreglo se redimensiona automáticamente cuando se supera su capacidad actual.

  • En general, se duplica su tamaño para optimizar el rendimiento y reducir la frecuencia de redimensionamientos.

Cuando se intenta agregar un elemento y el arreglo interno está lleno, ArrayList crea un nuevo arreglo con mayor capacidad y copia todos los elementos existentes en él. Por defecto, el nuevo tamaño suele ser aproximadamente el doble del tamaño anterior (


Ventajas del uso de ArrayList sobre arreglos

Sección titulada «Ventajas del uso de ArrayList sobre arreglos»
  • Permite:

    • Agregar y eliminar elementos sin gestionar el tamaño manualmente.

    • Utilizar métodos utilitarios como:

      • add()
      • remove()
      • get()
      • contains()
      • indexOf()
  • Ideal para situaciones donde el número de elementos no se conoce de antemano o puede cambiar durante la ejecución.