Método set() de Java LinkedList

Java LinkedList Java LinkedList


LinkedListes una clase importante en el marco de colecciones de Java, que implementaListinterfaz.set()El método esLinkedListun método muy útil proporcionado por la clase, utilizado para reemplazar el elemento en la posición especificada en la lista enlazada.

En pocas palabras,set()El método te permite:

  1. Acceder a una posición específica en la lista enlazada mediante un índice
  2. Reemplazar el elemento antiguo en esa posición con un elemento nuevo
  3. Devolver el elemento antiguo reemplazado

Sintaxis del método

set()La sintaxis completa del método es la siguiente:

public E set(int index, E element)

Descripción de parámetros:

  • index: la posición del elemento a reemplazar (contando desde 0)
  • element: el nuevo elemento a almacenar en la posición especificada

Valor de retorno:

  • Devuelve el elemento antiguo reemplazado

Ejemplo de uso

Entendamos a través de un ejemplo de código completoset()el uso del método:

Ejemplo

import java.util.LinkedList;

public class LinkedListSetExample {
    public static void main(String[] args) {
        // Crear un LinkedList
        LinkedList<String> fruits = new LinkedList<>();
       
        // Agregar elementos
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
        fruits.add("Date");
       
        System.out.println("Lista enlazada original: " + fruits);
       
        // Usar el método set() para reemplazar el segundo elemento
        String replaced = fruits.set(1, "Blueberry");
       
        System.out.println("Elemento reemplazado: " + replaced);
        System.out.println("Lista enlazada modificada: " + fruits);
    }
}

Resultado de salida:

原始链表: [Apple, Banana, Cherry, Date]
被替换的元素: Banana
修改后的链表: [Apple, Blueberry, Cherry, Date]

Notas

Excepción de índice fuera de rango

Si el índice especificado está fuera del rango de la lista enlazada (index < 0 o index >= size()),set()el método lanzaráIndexOutOfBoundsException。

Ejemplo

// Esto lanzará una excepción, porque el índice 4 no existe (la lista enlazada solo tiene 4 elementos, el rango de índices es 0-3)
fruits.set(4, "Fig");

Consideraciones de rendimiento

Dado queLinkedListestá implementado basado en una lista enlazada,set()el método necesita recorrer la lista enlazada para encontrar el elemento en la posición especificada, por lo tanto:

  • La complejidad temporal promedio es O(n)
  • Para escenarios que requieren acceso aleatorio frecuente,ArrayListpuede ser una mejor opción

No se permiten valores null

SiLinkedListno permite elementos null (dependiendo de la implementación específica), intentar establecer un valor null puede lanzarNullPointerException。


Comparación con otros métodos

set() vs add()

  • set(): reemplaza el elemento en la posición especificada
  • add(): inserta un nuevo elemento en la posición especificada, el elemento original se desplaza hacia atrás

set() vs get()

  • set(): modifica el elemento en la posición especificada y devuelve el valor antiguo
  • get(): solo obtiene el elemento en la posición especificada, sin modificar la lista enlazada

Escenarios de aplicación práctica

set()El método es especialmente útil en los siguientes escenarios:

  1. Actualizar un elemento específico en la lista enlazada
  2. Reemplazar registros históricos al implementar funciones de deshacer/rehacer
  3. Modificar datos de pasos intermedios en algoritmos
  4. Actualizar el estado de objetos en el desarrollo de juegos

Resumen

LinkedListdeset()El método es una herramienta simple pero poderosa, que permite a los desarrolladores modificar con precisión elementos específicos en una lista enlazada. Comprender el principio de funcionamiento y las limitaciones de este método te ayudará a usar más eficazmenteLinkedListla colección.

Java LinkedList Java LinkedList

Otras extensiones