Métodos
La clase ArrayList proporciona una serie de métodos públicos que permiten realizar operaciones comunes sobre listas dinámicas, tales como insertar, acceder, modificar o eliminar elementos. A continuación se describen los métodos más relevantes, junto con ejemplos de uso.
add(element)
Sección titulada «add(element)»Agrega un nuevo elemento al final del ArrayList.
ArrayList<String> nombres = new ArrayList<>();nombres.add("Nataly");nombres.add("Donnie");- Resultado:
["Nataly", "Donnie"]
get(index)
Sección titulada «get(index)»Obtiene el elemento ubicado en la posición indicada por el índice.
String primero = nombres.get(0); // «Nataly»- Lanza
IndexOutOfBoundsExceptionsi el índice es inválido.
set(index, element)
Sección titulada «set(index, element)»Reemplaza el elemento ubicado en la posición index con el nuevo valor especificado.
nombres.set(1, "Jesús"); // Reemplaza «Donnie» por «Jesús»- Resultado:
["Nataly", "Jesús"]
remove(index)
Sección titulada «remove(index)»Elimina el elemento en la posición indicada.
nombres.remove(0); // Elimina «Nataly»- Resultado:
["Jesús"]
remove(Object)
Sección titulada «remove(Object)»Elimina la primera aparición del objeto especificado en la lista.
nombres.remove("Jesús"); // Elimina el elemento si existe- Retorna
truesi el elemento fue encontrado y eliminado.
Devuelve la cantidad de elementos almacenados en el ArrayList.
int cantidad = nombres.size(); // 0 (después de eliminar todos los elementos)isEmpty()
Sección titulada «isEmpty()»Indica si el ArrayList está vacío.
boolean vacio = nombres.isEmpty(); // trueclear()
Sección titulada «clear()»Elimina todos los elementos del ArrayList, dejándolo vacío.
nombres.clear();contains(element)
Sección titulada «contains(element)»Retorna true si el elemento especificado existe en la lista.
nombres.add("Nataly");boolean existe = nombres.contains("Nataly"); // trueindexOf(element)
Sección titulada «indexOf(element)»Devuelve el índice de la primera aparición del elemento, o -1 si no existe.
int posicion = nombres.indexOf("Nataly"); // 0Complejidad computacional de los métodos
Sección titulada «Complejidad computacional de los métodos»Desde el punto de vista algorítmico se debe considerar el costo temporal de las operaciones sobre un ArrayList. Las complejidades más relevantes son:
-
get(index)yset(index, element)tienen complejidad O(1)- Acceden directamente a una posición específica del arreglo subyacente.
-
Métodos como
add(element),remove(index),remove(Object),contains(element)eindexOf(element)tienen complejidad O(n) en el peor caso- Pueden requerir recorrer parcialmente o completamente el arreglo, o realizar desplazamientos al insertar o eliminar elementos intermedios.
Este comportamiento se debe a que ArrayList se basa internamente en un arreglo dinámico, lo cual favorece el acceso por índice pero penaliza las operaciones que afectan múltiples elementos.