Метод removeIf
Метод removeIf удаляет из коллекции все элементы,
которые удовлетворяют заданному условию. В параметр
мы передаем лямбда-выражение или объект
Predicate, который возвращает true для
элементов, подлежащих удалению. Метод возвращает
true, если хотя бы один элемент был удален,
и false в противном случае.
Синтаксис
ArrayList.removeIf(predicate)
Пример
Давайте удалим из списка все четные числа:
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
ArrayList<Integer> list = new ArrayList<>(List.of(1, 2, 3, 4, 5));
list.removeIf(n -> n % 2 == 0);
System.out.println(list);
}
}
Результат выполнения кода:
[1, 3, 5]
Пример
Давайте удалим из списка все строки, длина которых
меньше 2:
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
ArrayList<String> list = new ArrayList<>(List.of("a", "ab", "abc", "b", "bc"));
list.removeIf(s -> s.length() < 2);
System.out.println(list);
}
}
Результат выполнения кода:
[ab, abc, bc]
Пример
Давайте проверим, что возвращает метод removeIf,
когда ни один элемент не был удален:
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
ArrayList<Integer> list = new ArrayList<>(List.of(1, 2, 3, 4, 5));
boolean res = list.removeIf(n -> n > 10);
System.out.println(res);
System.out.println(list);
}
}
Результат выполнения кода:
false
[1, 2, 3, 4, 5]