关注微信公众号 太平洋学习网 扫描二维码
最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

BiPredicate<T,U>接口函数的用法示例

Java基础 admin 浏览 评论

 BiPredicate<T,U>接口是java8中用来做对lambda表达式做判断的Function函数,BiPredicate用法非常简单,先看看泛型所表达的意思。

T - 表示第一个参数
U - 表示第二个参数

BiPredicate接口中有4个方法,如下。

//判断是否满足条件
boolean test(T t, U u)
//and表示是否同时满足
default BiPredicate<T,U> and(BiPredicate<? super T,? super U> other)
//negate表示非运算,类似"!"
default BiPredicate<T,U> negate()
//or或者
default BiPredicate<T,U> or(BiPredicate<? super T,? super U> other)

1:test(T t, U u)的使用方法,返回true或false:

import java.util.function.BiPredicate;
public class TestDemo {
   public static void main(String[] args) {
     //lambda表达式:x是否大于y参数
     BiPredicate<Integer, Integer> bi = (x, y) -> x > y;
     System.out.println(bi.test(2, 3));
   }
}

输出结果:false。

2:and(BiPredicate<? super T,? super U> other)方法使用,返回BiPredicate对象:

import java.util.function.BiPredicate;
public class TestDemo {
   public static void main(String[] args) {
     //x是否大于y的lambda表达式
     BiPredicate<Integer, Integer> bi = (x, y) -> x > y;
     //x减去2之后是否还大于y
     BiPredicate<Integer, Integer> an = (x, y) -> x -2 > y;
     System.out.println(bi.test(2, 3));
     //是否同时满足
     System.out.println(bi.and(an).test(4, 3));
     System.out.println(bi.and(an).test(8, 3));
   }
}

输出结果:

false
false
true

3:BiPredicate<T,U> negate()方法的使用,非运算,如果test()的结果为true,则返回false,反之返回true,如下。

import java.util.function.BiPredicate;
public class TestDemo {
   public static void main(String[] args) {
     //x是否大于y的lambda表达式   
     BiPredicate<Integer, Integer> bi = (x, y) -> x > y;     
     System.out.println(bi.test(2, 3));    
     System.out.println(bi.negate().test(2, 3));
   }
}

输出结果:

false

true

4:or(BiPredicate<? super T,? super U> other)表示或者,即满足一个条件就会返回true,用法如下。

import java.util.function.BiPredicate;
public class TestDemo {
   public static void main(String[] args) {
      //x是否大于y的lambda表达式   
      BiPredicate<Integer, Integer> bi = (x, y) -> x > y;
      //x-2是否还大于4
      BiPredicate<Integer, Integer> eq = (x, y) -> x -2 > y;  
      System.out.println(bi.test(2, 3));
      System.out.println(bi.or(eq).test(8, 3));
   }
}

输出结果:

false
true

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/java/2017/1015/286.html

    与本文相关的文章