Método get() de 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 enlazadaindexes 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:
- Verificar si el índice es válido (0 ≤ index < size)
- Recorrer desde la cabeza o la cola de la lista enlazada (elegir el extremo más cercano para comenzar)
- Avanzar nodo por nodo hasta encontrar el nodo en la posición especificada
- Devolver el elemento almacenado en ese nodo
Ejemplo de uso
Uso básico
Ejemplo
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
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
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:
getFirst()": Obtener el primer elemento"getLast()": Obtener el último elemento"peek()": Obtener el primer elemento sin eliminarlo (devuelve null si la lista está vacía)"peekFirst()": Igual que peek()"peekLast()": Obtener el último elemento sin eliminarlo (devuelve null si la lista está vacía)"
Ejemplo
Ejemplo
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
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。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
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());
}
- Verificar el rango del índice": Antes de usar"
get()"el método, es mejor verificar primero si el índice es válido:"
Ejemplo
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