Метод removeIf() класса ArrayList в Java
Метод removeIf() используется для удаления всех элементов массива, удовлетворяющих определённому условию.
Синтаксис метода removeIf():
arraylist.removeIf(Predicate<E> filter)
Примечание:arraylist — это объект класса ArrayList.
Описание параметров:
- filter — фильтр, определяющий, следует ли удалять элемент.
Возвращаемое значение
Возвращает true, если элемент был удалён.
Пример
Следующий пример демонстрирует использование метода removeIf():
Пример
class Main {
public static void main(String[] args){
// Создать динамический массив
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("Example");
sites.add("Taobao");
System.out.println("ArrayList : " + sites);
// Удалить элементы, имя которых содержит Tao
sites.removeIf(e -> e.contains("Tao"));;
System.out.println("ArrayList after removal: " + sites);
}
}
Вывод вышеприведённой программы:
ArrayList : [Google, Example, Taobao] 删除后的 ArrayList: [Google, Example]
В приведённом выше примере мы использовалиметод contains() класса String в Java, чтобы проверить, содержит ли элемент "Tao".
e -> e.contains("land")Возвращает true, если элемент содержит "land".
removeIf()Еслиe -> e.contains("land")возвращает true, элемент удаляется.
Удалить чётные элементы:
Пример
class Main {
public static void main(String[] args) {
// Создать массив
ArrayList<Integer> numbers = new ArrayList<>();
// Вставить элементы в массив
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(5);
numbers.add(6);
System.out.println("Numbers: " + numbers);
// Удалить все чётные элементы
numbers.removeIf(e -> (e % 2) == 0);;
System.out.println("Нечётные числа: " + numbers);
}
}
Вывод вышеприведённой программы:
Numbers: [1, 2, 3, 4, 5, 6] Odd Numbers: [1, 3, 5]
В приведённом выше примере мы создали динамический массив с именем numbers.
Обратите внимание на выражение:
numbers.removeIf(e -> (e % 2) == 0);
e -> (e % 2) == 0)— это лямбда-выражение (анонимная функция). Оно проверяет, делится ли элемент на 2.
Чтобы узнать больше об анонимных функциях, посетитеЛямбда-выражения в Java。
removeIf()Если методe -> (e % 2) == 0возвращает true, то элемент удаляется.
Другие расширения
Java ArrayList