Método get() de Java LinkedList

Java LinkedList Java LinkedList


get()El método es, en Java,LinkedListun método común proporcionado por la clase, utilizado para obtener el elemento en la posición especificada de la lista enlazada.LinkedListes, en el marco de colecciones de Java,Listuna clase de implementación de la interfaz, que utiliza una estructura de datos de lista doblemente enlazada para almacenar elementos.

get()La sintaxis básica del método es la siguiente:

E get(int index)

Donde:

  • Erepresenta el tipo de elemento en la lista enlazada
  • indexes la posición del elemento a obtener (contando desde 0)

Principio de funcionamiento del método get()

LinkedListdeget()El método obtiene el elemento en la posición especificada recorriendo la lista enlazada. Dado queLinkedListse basa en una lista enlazada, a diferencia deArrayListno puede acceder directamente a los elementos por índice de forma aleatoria.

Cuando se llama aget(index),LinkedListhará lo siguiente:

  1. Verificar si el índice es válido (0 ≤ index < size)
  2. Recorrer desde la cabeza o la cola de la lista enlazada (elegir el extremo más cercano para comenzar)
  3. Avanzar nodo por nodo hasta encontrar el nodo en la posición especificada
  4. Devolver el elemento almacenado en ese nodo

Ejemplo de uso

Uso básico

Ejemplo

import java.util.LinkedList;

public class LinkedListGetExample {
    public static void main(String[] args) {
        // Crear un LinkedList
        LinkedList<String> fruits = new LinkedList<>();
       
        // Añadir elementos
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
        fruits.add("Durian");
       
        // Usar el método get() para obtener elementos
        String firstFruit = fruits.get(0);  // Obtener el primer elemento
        String thirdFruit = fruits.get(2);  // Obtener el tercer elemento
       
        System.out.println("Primera fruta: " + firstFruit);  // Salida: Apple
        System.out.println("Tercera fruta: " + thirdFruit);  // Salida: Cherry
    }
}

Recorrer LinkedList

Ejemplo

import java.util.LinkedList;

public class LinkedListTraversal {
    public static void main(String[] args) {
        LinkedList<Integer> numbers = new LinkedList<>();
        numbers.add(10);
        numbers.add(20);
        numbers.add(30);
        numbers.add(40);
       
        // Recorrer LinkedList usando el método get()
        for (int i = 0; i < numbers.size(); i++) {
            System.out.println("El elemento " + i + ": " + numbers.get(i));
        }
    }
}

Consideraciones de rendimiento

LinkedListdeget()La complejidad temporal del método es O(n), porque necesita recorrer la lista enlazada desde el principio o el final para encontrar el elemento en la posición especificada. Esto contrasta conArrayListla complejidad temporal O(1) de [ArrayList].

Por lo tanto, si se necesita acceder aleatoriamente a los elementos con frecuencia,ArrayListpuede ser una mejor opción. Mientras queLinkedListen operaciones frecuentes de inserción y eliminación tiene un mejor rendimiento.


Manejo de excepciones

Cuando se usaget()el método, si el índice pasado está fuera de rango (index < 0 o index ≥ size), se lanzaráIndexOutOfBoundsException。

Ejemplo de uso seguro

Ejemplo

import java.util.LinkedList;

public class SafeGetExample {
    public static void main(String[] args) {
        LinkedList<String> colors = new LinkedList<>();
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");
       
        int index = 3;  // Índice fuera de rango
       
        try {
            String color = colors.get(index);
            System.out.println(color);
        } catch (IndexOutOfBoundsException e) {
            System.out.println("Error: índice " + index + " fuera de rango. El tamaño de la lista es " + colors.size());
        }
    }
}

Métodos alternativos

Además deget()del método,LinkedListtambién proporciona otros métodos para obtener elementos:

  1. getFirst()": Obtener el primer elemento"
  2. getLast()": Obtener el último elemento"
  3. peek()": Obtener el primer elemento sin eliminarlo (devuelve null si la lista está vacía)"
  4. peekFirst()": Igual que peek()"
  5. peekLast()": Obtener el último elemento sin eliminarlo (devuelve null si la lista está vacía)"

Ejemplo

Ejemplo

import java.util.LinkedList;

public class AlternativeMethods {
    public static void main(String[] args) {
        LinkedList<String> books = new LinkedList<>();
        books.add("Java Programming");
        books.add("Data Structures");
        books.add("Algorithms");
       
        System.out.println("Primer libro: " + books.getFirst());
        System.out.println("Último libro: " + books.getLast());
        System.out.println("peek(): " + books.peek());
        System.out.println("peekLast(): " + books.peekLast());
    }
}

Mejores prácticas

  1. Evitar el uso frecuente del método get()": Dado que"LinkedListdeget()"el rendimiento del método es bajo; si se necesita acceso aleatorio frecuente, considere usar"ArrayList。

  2. Usar un iterador para recorrer": Cuando se necesita recorrer"LinkedList", usar un iterador en lugar de usar"get()"el método, es más eficiente:"

Ejemplo

// Forma más eficiente de recorrer
for (String fruit : fruits) {
    System.out.println(fruit);
}

// O usar un iterador
Iterator<String> iterator = fruits.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}
  1. Verificar el rango del índice": Antes de usar"get()"el método, es mejor verificar primero si el índice es válido:"

Ejemplo

if (index >= 0 && index < list.size()) {
    return list.get(index);
} else {
    // Manejar el caso de un índice no válido
}

Resumen

LinkedListdeget()El método es un método básico pero importante. Nos permite acceder a los elementos de la lista enlazada mediante un índice. Aunque su rendimiento no es tan bueno como el deArrayListlos métodos correspondientes de [ArrayList], en ciertos escenarios (como inserciones y eliminaciones frecuentes)LinkedListsigue siendo una mejor opción. Comprenderget()el principio de funcionamiento y las características de rendimiento del método puede ayudarnos a tomar decisiones más razonables sobre estructuras de datos en el desarrollo real.

Java LinkedList Java LinkedList

Otras extensiones