【Java 8 新特性】Java 8 Stream: allMatch, anyMatch和noneMatch示例

Java 8 Stream: allMatch, anyMatch和noneMatch示例

Java 8 Stream allMatch, anyMatchnoneMatch方法应用于与给定Predicate匹配的流对象,然后返回布尔值。

allMatch()检查调用流是否与给定Predicate完全匹配,如果是,则返回true,否则返回false

anyMatch()检查流中是否有与给定Predicate匹配的元素,如果是,则返回true,否则返回false

noneMatch()仅当没有元素与给定Predicate匹配才返回true

Stream.allMatch

我们将Predicate作为参数传递给allMatch()方法。

Predicate应用于流的每个元素,如果每个元素都满足给定的Predicate,则返回true,否则返回false

Stream.anyMatch

对于anyMatch()方法,我们将Predicate作为参数传递。

流的元素为此Predicate进行迭代。如果有元素匹配,则返回true,否则返回false

Stream.noneMatch

对于noneMatch()方法,我们将Predicate作为参数传递。

如果流中的任何元素都不匹配给定的Predicate,则返回true,否则返回false

代码示例

MatchDemo.java

import java.util.List;
import java.util.function.Predicate;
public class MatchDemo {
  public static void main(String[] args) {
     Predicate<Employee> p1 = e -> e.id < 10 && e.name.startsWith("A");
     Predicate<Employee> p2 = e -> e.sal < 10000;
     List<Employee> list = Employee.getEmpList();
     //using allMatch
     boolean b1 = list.stream().allMatch(p1);
     System.out.println(b1);
     boolean b2 = list.stream().allMatch(p2);
     System.out.println(b2);
     //using anyMatch
     boolean b3 = list.stream().anyMatch(p1);
     System.out.println(b3);
     boolean b4 = list.stream().anyMatch(p2);
     System.out.println(b4);
     //using noneMatch
     boolean b5 = list.stream().noneMatch(p1);
     System.out.println(b5);
     
  }    
} 

Employee.java

import java.util.ArrayList;
import java.util.List;
public class Employee {
    public int id;
    public String name;
    public int sal;
    public Employee(int id,String name,int sal  ){
        this.id = id;
        this.name = name;
        this.sal = sal;
    }
    public static List<Employee> getEmpList(){
        List<Employee> list = new ArrayList<>();
        list.add(new Employee(1, "A", 2000));
        list.add(new Employee(2, "B", 3000));
        list.add(new Employee(3, "C", 4000));
        list.add(new Employee(4, "D", 5000));
        return list;
    }
} 

输出

false
true
true
true
false

参考文献

Java 8 Stream: allMatch, anyMatch and noneMatch Example

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫巳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值