21xrx.com
2024-11-22 12:24:47 Friday
登录
文章检索 我的文章 写文章
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函数的用法,并给出了一些代码示例,希望可以帮助大家更好的理解和掌握该函数的使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复