Java 8 中函数和谓词之间的区别


函数和谓词均在 Java 8 中作为函数式接口引入,用于在 Java 中实现函数式编程。

函数式接口用于执行转换。它可以接受一个参数并产生一个结果。另一方面,谓词也可以只接受一个参数,但它只能返回布尔值。它用于测试条件。

序号关键函数谓词
1
基础
可以采用 2 种类型参数,第一个表示输入类型参数类型,第二个表示返回类型。
可以采用一个类型参数,它表示输入类型或参数类型。
2
返回类型
可以返回任何类型的值。
只能返回布尔值
3
方法
有抽象方法 apply()。
有抽象方法 test()。
4.
用例
可以用于实现条件检查
可用于转换和返回值。

谓词范例

public class Main {
   public static void main(String args[]) {
      List<Integer> numList = new ArrayList<>();
      numList.add(5);
      numList.add(10);
      Predicate<Integer> pred = i -> i > 5;
      numList.stream().filter(pred).forEach(i -> System.out.println(i));
   }
}

函数范例

public class Main {
   public static void main(String args[]) {
      List<Integer> numList = new ArrayList<>();
      numList.add(78);
      numList.add(10);
      Function<Integer, Integer> fun = i -> i / 2;
      numList.stream().map(fun).forEach(System.out::println);    
   }
}

更新于:09-Sep-2020

7K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.