java.util.function.Predicate的用法

2018-06-19  本文已影响0人  传说中的大哥

Predicate类包含5个方法,最重要的是test方法,这是一个抽象方法,需要编程者自己去Override,其他的三个default方法里都使用到了这个方法,这三个方法分别是and方法,negate方法和or方法,其中and和or方法与前面两个类的andThen方法类似,这两个方法都接受另一个Predicate对象作为参数,and方法返回这两个对象分别调用test方法之后得到的布尔值的并,相当于predicate1.test() && predicate2.test(),or方法返回这两个对象分别调用test方法之后得到的布尔值的或,相当于predicate1.test() || predicate2.test()。negate方法是取反predicate1.negate()。

test例:

public static void main(String[] args) {
    Predicate<Integer> predicate = s->s==1;
    System.err.println(predicate.test(1));
}

执行结果:

true

and例:

//判断一个整数大于5并且是偶数(两个条件同时满足)
public static void main(String[] args) {
    Predicate<Integer> predicate = s-> s>=5;
    Predicate<Integer> predicate1 = s -> s%2==0;
    System.out.println(predicate1.and(predicate).test(7));
    System.out.println(predicate.and(predicate1).test(8));
}

执行结果:

false
true

or例:

//判断一个整数大于等于5或是偶数(满足一个条件即可)
public static void main(String[] args) {
    Predicate<Integer> predicate = s->s>=5;
    Predicate<Integer> predicate1 = s -> s%2==0;
    System.out.println(predicate1.or(predicate).test(4));
    System.out.println(predicate.and(predicate1).test(8));
}

执行结果:

true
true

negate例:

//判断一个整数是否大于等于5(取反)
public static void main(String[] args) {
    Predicate<Integer> predicate = s->s>=5;
    System.out.println(predicate.negate().test(6));
}

执行结果:

false
上一篇下一篇

猜你喜欢

热点阅读