English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Метод removeIf() класса Java ArrayList удаляет все элементы ArrayList, удовлетворяющие заданным условиям.
Синтаксис метода removeIf():
arraylist.removeIf(Predicate<E> filter)
filter - Решение вопроса о необходимости удаления элемента
Обратите внимание: Если фильтр возвращает true, удаляет элемент.
Если из arraylist был удален элемент, то возвращает true.
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, удаляет элемент.
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, удаляет элемент.