Удаление элементов из LinkedList в Java — методы remove и removeIf

Пример 1: Удаление элемента с помощью remove()

import java.util.LinkedList;

class Main {
  public static void main(String[] args) {
    LinkedList<String> languages = new LinkedList<>();

    // add elements in LinkedList
    languages.add("Java");
    languages.add("Python");
    languages.add("JavaScript");
    languages.add("Kotlin");
    System.out.println("LinkedList: " + languages);

    // remove elements from index 1
    String str = languages.remove(3);
    System.out.println("Removed Element: " + str);

    System.out.println("Updated LinkedList: " + languages);
  }
}

Вывод:

LinkedList: [Java, Python, JavaScript, Kotlin]
Removed Element: Kotlin
Updated LinkedList: [Java, Python, JavaScript]

В приведённом примере мы создали LinkedList с именем languages. Здесь использован метод remove() для удаления элемента из списка. Метод принимает индекс элемента в качестве параметра.

Пример 2: С помощью метода listIterator()

Также удалять элементы из LinkedList можно с помощью listIterator().

import java.util.ArrayList;
import java.util.ListIterator;

class Main {
    public static void main(String[] args) {
        ArrayList<String> animals= new ArrayList<>();

        // add elements
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("LinkedList: " + animals);

        // creating an object of ListIterator
        ListIterator<String> listIterate = animals.listIterator();
        listIterate.next();

        // remove element returned by next()
        listIterate.remove();
        System.out.println("New LinkedList: " + animals);
    }
}

Вывод:

LinkedList: [Dog, Cat, Horse]
New LinkedList: [Cat, Horse]

В приведённом примере метод listIterator() возвращает итератор для доступа к каждому элементу списка. Здесь метод next() возвращает следующий элемент списка.

Пример 3: Удаление всех элементов с помощью clear()

Чтобы удалить все элементы LinkedList, можно использовать метод clear().

import java.util.LinkedList;

class Main {
  public static void main(String[] args) {
    LinkedList<String> languages = new LinkedList<>();

    // add elements in LinkedList
    languages.add("Java");
    languages.add("Python");
    languages.add("Swift");
    System.out.println("LinkedList: " + languages);

    // remove all the elements
    languages.clear();
    System.out.println("LinkedList after clear(): " + languages);
  }
}

Вывод:

LinkedList: [Java, Python, Swift]
LinkedList after clear(): []

Примечание

Для удаления всех элементов также можно использовать метод removeAll(). Однако clear() считается более эффективным.

Пример 4: С помощью метода removeIf()

Также можно удалять элементы списка по определённому условию с помощью метода removeIf().

import java.util.LinkedList;

class Main {
  public static void main(String[] args) {
    LinkedList<Integer> numbers = new LinkedList<>();

    // add elements in LinkedList
    numbers.add(2);
    numbers.add(3);
    numbers.add(4);
    numbers.add(5);
    System.out.println("LinkedList: " + numbers);

    // remove all elements less than 4
    numbers.removeIf((Integer i) -> i < 4);
    System.out.println("Updated LinkedList: " + numbers);

  }
}

Вывод:

LinkedList: [2, 3, 4, 5]
Updated LinkedList: [4, 5]

В приведённом примере (Integer i) -> i < 4 — это лямбда-выражение. Оно возвращает числа меньше 4. Метод removeIf() удаляет числа, возвращённые лямбда-выражением.