设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Java8之Consumer、Supplier、Predicate和Function攻略(3)

发布时间:2019-08-05 12:06 所属栏目:21 来源:Java星星
导读:3.1 Predicate 实例 /** *Predicate谓词测试,谓词其实就是一个判断的作用类似bool的作用 */ @Test publicvoidtest_Predicate(){ //①使用Predicate接口实现方法,只有一个test方法,传入一个参数,返回一个bool值 P

3.1 Predicate 实例

  1. /** 
  2.  * Predicate谓词测试,谓词其实就是一个判断的作用类似bool的作用 
  3.  */ 
  4.  @Test 
  5.  public void test_Predicate() { 
  6.  //① 使用Predicate接口实现方法,只有一个test方法,传入一个参数,返回一个bool值 
  7.  Predicate<Integer> predicate = new Predicate<Integer>() { 
  8.  @Override 
  9.  public boolean test(Integer integer) { 
  10.  if(integer > 5){ 
  11.  return true; 
  12.  } 
  13.  return false; 
  14.  } 
  15.  }; 
  16.  System.out.println(predicate.test(6)); 
  17.  System.out.println("********************"); 
  18.  //② 使用lambda表达式, 
  19.  predicate = (t) -> t > 5; 
  20.  System.out.println(predicate.test(1)); 
  21.  System.out.println("********************"); 
  22.  } 

输出结果

Java8之Consumer、Supplier、Predicate和Function攻略,建议收藏

3.2 实例分析

① Predicate 接口分析

  1. //① 使用Predicate接口实现方法,只有一个test方法,传入一个参数,返回一个bool值 
  2.  Predicate<Integer> predicate = new Predicate<Integer>() { 
  3.  @Override 
  4.  public boolean test(Integer integer) { 
  5.  if(integer > 5){ 
  6.  return true; 
  7.  } 
  8.  return false; 
  9.  } 
  10.  }; 

这段代码中,创建了一个 Predicate 接口对象,其中,实现类 test 方法,需要传入一个参数,并且返回一个 bool 值,所以这个接口作用就是判断!

  1. System.out.println(predicate.test(6)); 

再看,调用 test 方法,传入一个值,就会返回一个 bool 值。

② 使用lambda表达式作为 predicate

  1. //② 使用lambda表达式, 
  2.  predicate = (t) -> t > 5; 
  3.  System.out.println(predicate.test(1)); 
  4.  System.out.println("********************"); 

lambda 表达式返回一个 Predicate 接口,然后调用 test 方法!

3.3 Predicate 接口实例2

  1. /** 
  2.  * Predicate谓词测试,Predicate作为接口使用 
  3.  */ 
  4.  @Test 
  5.  public void test_Predicate2() { 
  6.  //① 将Predicate作为filter接口,Predicate起到一个判断的作用 
  7.  Predicate<Integer> predicate = new Predicate<Integer>() { 
  8.  @Override 
  9.  public boolean test(Integer integer) { 
  10.  if(integer > 5){ 
  11.  return true; 
  12.  } 
  13.  return false; 
  14.  } 
  15.  }; 
  16.  Stream<Integer> stream = Stream.of(1, 23, 3, 4, 5, 56, 6, 6); 
  17.  List<Integer> list = stream.filter(predicate).collect(Collectors.toList()); 
  18.  list.forEach(System.out::println); 
  19.  System.out.println("********************"); 
  20.  } 

输出结果

Java8之Consumer、Supplier、Predicate和Function攻略,建议收藏

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读