ArrayList removeIf() - 按字段删除对象

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(362)   2023-06-26 07:54:18

ArrayList removeIf() 迭代列表并移除此列表中满足给定谓词的所有元素。

1. ArrayList removeIf() 方法

removeIf() 方法采用Predicate 类型的单个参数。 Predicate 接口是一个功能接口,表示一个参数的条件(布尔值函数)。它检查给定的参数是否满足条件。

public boolean removeIf(Predicate<? super E> filter);

方法参数 – 过滤谓词,返回 true 用于要删除的元素。
方法返回$$$ 如果删除了任何元素。
方法抛出true 如果谓词是 NullPointerException

2. ArrayList removeIf()例子

Java 程序使用 removeIf() 方法以谓词的形式删除与给定条件匹配的元素。

2.1.从数字列表中删除偶数

在这个简单的示例中,我们有一个奇数/偶数列表,我们将从列表中删除所有偶数。

import java.util.ArrayList;
import java.util.Arrays;

public class ArrayListExample 
{
    public static void main(String[] args) throws CloneNotSupportedException 
    {
        ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8,9,10));

        numbers.removeIf( number -> number%2 == 0 );
        
        System.out.println(numbers);
    }
}

程序输出。

[1, 3, 5, 7, 9]

2.2.按字段值删除删除对象

在这个简单的示例中,我们有一个员工列表,我们将删除所有名称以 char 'P' 开头的员工。

import java.time.LocalDate;
import java.time.Month;
import java.util.ArrayList;
import java.util.function.Predicate;

public class ArrayListExample 
{
    public static void main(String[] args) throws CloneNotSupportedException 
    {
        ArrayList<Employee> employees = new ArrayList<>();
        
        employees.add(new Employee(1l, "Alex", LocalDate.of(2018, Month.APRIL, 21)));
        employees.add(new Employee(4l, "Brian", LocalDate.of(2018, Month.APRIL, 22)));
        employees.add(new Employee(3l, "Piyush", LocalDate.of(2018, Month.APRIL, 25)));
        employees.add(new Employee(5l, "Charles", LocalDate.of(2018, Month.APRIL, 23)));
        employees.add(new Employee(2l, "Pawan", LocalDate.of(2018, Month.APRIL, 24)));
        
        Predicate<Employee> condition = employee -> employee.getName().startsWith("P");
        
        employees.removeIf(condition);
        
        System.out.println(employees);
    }
}

程序输出。

[
	Employee [id=1, name=Alex, dob=2018-04-21], 
	Employee [id=4, name=Brian, dob=2018-04-22], 
	Employee [id=5, name=Charles, dob=2018-04-23]
]

以上就是 Java 中的 ArrayList removeIf() 方法

快乐学习!!

更多参考:

Java ArrayList 指南
ArrayList Java 文档
谓词 Java 文档

标签2: Java ArrayList
地址:https://www.cundage.com/article/arraylist-removeif.html

相关阅读

ArrayList ensureCapacity() 方法增加了给定 ArrayList 实例的容量,如果有必要,以确保它至少可以容纳方法参数指定的项目数 &lt;代码&gtl;最小容量。 当 ...
ArrayList clear() 方法用于从列表中删除所有元素。此调用返回后列表将为空。 1. ArrayList clear() 语法 clear() 方法做的事情很简单。它迭代 array...
通过示例了解在 Java 中将 ArrayList 转换为字符串数组的不同方法。 1.将arraylist转换为数组——List.toArray() 这是将包含字符串值的数组列表转换为字符串数组...
了解如何获取 ArrayList 中最后一次出现的元素的索引。我们将使用 ArrayList.lastIndexOf() 方法来获取最后一个索引。 1. ArrayList.lastIndexO...
ArrayList.remove(int index) 方法从 ArrayList 中删除元素。 Remove 方法重载。 ArrayList.remove(E element) – 删除指定索...
通过易于理解的示例,学习如何在 Java 中将 Vector 转换为 ArrayList,反之亦然。 1. 将 Vector 转换为 ArrayList 要将包含对象的向量转换为包含相似对象的 ...
了解如何获取现有 ArrayList 的子列表。我们将使用 ArrayList.subList() 方法来获取 arraylist 对象的子列表。 1.ArrayList.subList()方法...
ArrayList add() 方法 用于在列表中添加一个元素。我们可以在 arraylist 中添加任何类型的元素,但是为了让程序以更可预测的方式运行,我们应该只在任何 goven 列表实例中...
在 Java 中,ArrayList 类默认是可序列化的。它本质上意味着我们不需要显式实现 Serializable 接口来序列化 ArrayList。 我们可以直接使用ObjectOutput...
通过示例学习在 Java 中将 LinkedList 转换为 ArrayList。我们还将学习如何在 Java 中将数组列表转换为链表。 1.将LinkedList转换为ArrayList 要将...