加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java8之Consumer、Supplier、Predicate和Function攻略

发布时间:2019-08-05 13:43:55 所属栏目:建站 来源:Java星星
导读:来聊聊Consumer、Supplier、Predicate、Function这几个接口的用法,在 Java8 的用法当中,这几个接口虽然没有明目张胆的使用,但是,却是润物细无声的。为什么这么说呢? 这几个接口都在 java.util.function 包下的,分别是Consumer(消费型)、supplier(

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攻略,建议收藏

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读