21xrx.com
2025-03-23 16:33:18 Sunday
文章检索 我的文章 写文章
Java中的Filter函数教程:带你深入理解Filter函数的用法
2023-06-17 00:27:42 深夜i     --     --
Java Filter函数 Predicate Stream流

Java中的Filter函数教程:带你深入理解Filter函数的用法

在Java中,Filter函数是比较常用的一个函数,它可以根据一定的条件来过滤集合中的元素。本文将介绍如何使用Java中的Filter函数,并通过实例详细讲解其应用。

Filter函数的语法如下:

List
  filter(List 
  
   list, Predicate 
   
    p)

其中,List 表示给定的集合,Predicate 是一个函数式接口,用于定义过滤条件。该函数式接口包含一个boolean test(T t)方法,返回true表示保留该元素,返回false表示过滤该元素。

示例代码如下:

List
  list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
 
Predicate
  p = i -> i > 5;
 
List
  newList = list.stream().filter(p).collect(Collectors.toList());
 
System.out.println(newList);

以上代码中,我们定义了一个整型集合list,然后定义了一个Predicate对象p,用于过滤集合中大于5的元素。接着使用stream()方法将集合转换为Stream流,然后使用filter()方法进行过滤,最终将过滤后的结果收集到一个新的集合中。

这是一个简单的示例,下面我们来看一个更为实际的应用场景。

假设我们需要对一个员工集合进行筛选,只保留薪资高于5000的员工。示例代码如下:

public class Employee {
  private String name;
  private int salary;
  public Employee(String name, int salary)
    this.name = name;
    this.salary = salary;
  
  public String getName()
    return name;
  
  public int getSalary()
    return salary;
  
}
public class FilterExample {
  public static void main(String[] args) {
    List
  employees = new ArrayList<>();
 
    employees.add(new Employee("张三", 4000));
    employees.add(new Employee("李四", 8000));
    employees.add(new Employee("王五", 6000));
    employees.add(new Employee("赵六", 3000));
    Predicate
  p = e -> e.getSalary() > 5000;
 
    List
  newEmployees = employees.stream().filter(p).collect(Collectors.toList());
 
    newEmployees.forEach(e -> System.out.println(e.getName() + " 薪资为:" + e.getSalary()));
  }
}

以上代码中,我们首先定义了一个Employee类,表示员工信息。然后定义了一个员工集合employees,并添加了一些员工信息。接着定义了一个Predicate对象p,用于过滤薪资高于5000的员工。最后使用stream()方法将集合转换为Stream流,使用filter()方法进行过滤并收集结果到一个新的集合中,最终输出符合条件的员工的姓名和薪资。

通过以上示例,我们可以看到Filter函数的强大之处。它可以根据我们的需求,过滤集合中的元素,提高我们的开发效率和代码质量。

本文简要介绍了Java中Filter函数的用法,并给出了一些代码示例,希望可以帮助大家更好的理解和掌握该函数的使用。

  
  

评论区