English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Учебник по основам Java

Java Управление потоком

Java Массив

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений в Java

Java Список (List)

Java Очередь (Queue)

Java Словарь (Map)

Java Множество (Set)

Java Вход/вывод (I/O)

Java Reader/Writer

Другие темы Java

Метод removeIf() класса Java ArrayList: использование и пример

Java методы ArrayList

Метод removeIf() класса Java ArrayList удаляет все элементы ArrayList, удовлетворяющие заданным условиям.

Синтаксис метода removeIf():

arraylist.removeIf(Predicate<E> filter)

Параметр removeIf()

  • filter  - Решение вопроса о необходимости удаления элемента

Обратите внимание: Если фильтр возвращает true, удаляет элемент.

Возврат removeIf()

  • Если из arraylist был удален элемент, то возвращает true.

Пример: Удалить четные числа из ArrayList

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        //Создать ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        //Добавить элемент в ArrayList
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);
        numbers.add(6);
        System.out.println("Числа: " + numbers);
        //Удалить все четные числа
        numbers.removeIf(e -> (e % 2) == 0);;
        System.out.println("Нечетные числа: " + numbers);
    }
}

Результат вывода

Числа: [1, 2, 3, 4, 5, 6]
Нечетные числа: [1, 3, 5]

В предыдущем примере мы создали ArrayList под названием numbers. Обратите внимание на эту строку,

numbers.removeIf(e -> (e % 2) == 0);

Здесь,

  • e -> (e % 2) == 0) - это lambda-выражение. Оно проверяет,能不能 делить элемент на 2. Для получения дополнительной информации посетитеJava Lambda выражения.

  • removeIf() - если e -> (e % 2) == 0 возвращает true, удаляет элемент.

Пример 2: Удалить страны, названия которых содержат "land"

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        //Создать ArrayList
        ArrayList<String> countries = new ArrayList<>();
        //Добавить элемент в ArrayList
        countries.add("Iceland");
        countries.add("America");
        countries.add("Ireland");
        countries.add("Canada");
        countries.add("Greenland");
        System.out.println("Страна: " + countries);
        //Удалить все страны с land
        countries.removeIf(e -> e.contains("land"));;
        System.out.println("Страны без land: " + countries);
    }
}

Результат вывода

Страны: [Исландия, Америка, Ирландия, Канада, Гренландия]
Страны без land: [Америка, Канада]

В上面的 примере мы использовалиJava строка contains()метод для проверки, содержит ли элемент"land". Здесь,

  • e -> e.contains("land") - если элемент содержит "land", возвращает true

  • removeIf() - если e-> e.contains("land") возвращает true, удаляет элемент.

Java методы ArrayList