教程 > java8 教程 > 阅读:28

java8 功能接口——迹忆客-ag捕鱼王app官网

函数式接口只有一个功能可以展示。 例如,具有单个方法“compareto”的 comparable 接口用于比较目的。 java 8 定义了许多函数式接口,可在 lambda 表达式中广泛使用。 以下是 java.util.function 包中定义的功能接口列表。

序号 接口 描述
1 biconsumer 表示接受两个输入参数且不返回结果的操作。
2 bifunction 表示接受两个参数并产生结果的函数。
3 binaryoperator 表示对两个相同类型的操作数的操作,产生与操作数相同类型的结果。
4 bipredicate 表示两个参数的谓词(布尔值函数)。
5 booleansupplier 表示布尔值结果。
6 consumer 表示接受单个输入参数且不返回结果的操作。
7 doublebinaryoperator 表示对两个 double 值操作数的操作并产生一个双值结果。
8 doubleconsumer 表示接受单个 double 值参数且不返回结果的操作。
9 doublefunction 表示一个接受 double 值参数并产生结果的函数。
10 doublepredicate 表示一个 double 值参数的谓词(布尔值函数)。
11 doublesupplier 代表 double 结果的提供者。
12 doubletointfunction 表示一个接受 double 值参数并产生 int 值结果的函数。
13 doubletolongfunction 表示一个接受 double 值参数并产生长值结果的函数。
14 doubleunaryoperator 表示对产生 double 值结果的单个双值操作数的操作。
15 function 表示接受一个参数并产生结果的函数。
16 intbinaryoperator 表示对两个 int 值操作数的操作并产生一个 int 值结果。
17 intconsumer 表示接受单个 int 值参数且不返回结果的操作。
18 intfunction 表示一个接受 int 值参数并产生结果的函数。
19 intpredicate 表示一个 int 值参数的谓词(布尔值函数)。
20 intsupplier 代表整数值结果的提供者。
21 inttodoublefunction 表示一个接受 int 值参数并产生双值结果的函数。
22 inttolongfunction 表示一个接受 int 值参数并产生长值结果的函数。
23 intunaryoperator 表示对产生 int 值结果的单个 int 值操作数的操作。
24 longbinaryoperator 表示对两个 long 值操作数的操作并产生一个长值结果。
25 longconsumer 表示接受单个 long 值参数且不返回结果的操作。
26 longfunction 表示一个接受 long 值参数并产生结果的函数。
27 longpredicate 表示一个 long 值参数的谓词(布尔值函数)。
28 longsupplier 代表 long 值结果的供应商。
29 longtodoublefunction 表示一个接受 long 值参数并产生双值结果的函数。
30 longtointfunction 表示接受 long 值参数并产生 int 值结果的函数。
31 longunaryoperator 表示对产生 long 值结果的单个长值操作数的操作。
32 objdoubleconsumer 表示接受对象值和 double 值参数且不返回结果的操作。
33 objintconsumer 表示接受对象值和 int 值参数且不返回结果的操作。
34 objlongconsumer 表示接受对象值和 long 值参数且不返回结果的操作。
35 predicate 表示一个参数的谓词(布尔值函数)。
36 supplier 代表结果的提供者。
37 todoublebifunction 表示接受两个参数并产生 double 值结果的函数。
38 todoublefunction 表示产生 double 值结果的函数。
39 tointbifunction 表示一个接受两个参数并产生一个 int 值结果的函数。
40 tointfunction 表示产生 int 值结果的函数。
41 tolongbifunction 表示一个接受两个参数并产生一个 long 值结果的函数。
42 tolongfunction 表示产生 long 值结果的函数。
43 unaryoperator 表示对单个操作数的操作,该操作产生与其操作数相同类型的结果。

功能接口示例

predicate 接口是一个函数接口,带有一个方法 test(object) 返回一个布尔值。 这个接口表示一个对象被测试为真或假。

下面是一个示例

import java.util.arrays;
import java.util.list;
import java.util.function.predicate;
public class java8tester {
   public static void main(string args[]) {
      list list = arrays.aslist(1, 2, 3, 4, 5, 6, 7, 8, 9);
        
      // predicate predicate = n -> true
      // n 作为参数传递给 predicate 接口的测试方法,无论 n 具有什么值,测试方法都将始终返回 true。
        
      system.out.println("print all numbers:");
        
      //将 n 作为参数传递
      eval(list, n->true);
        
      // predicate predicate1 = n -> n%2 == 0
      // n 作为参数传递给 predicate 接口的测试方法,如果 n%2 为零,测试方法将返回 true
        
      system.out.println("print even numbers:");
      eval(list, n-> n%2 == 0 );
        
      // predicate predicate2 = n -> n > 3
      // n 作为参数传递给 predicate 接口的测试方法,如果 n 大于 3,测试方法将返回 true。
        
      system.out.println("print numbers greater than 3:");
      eval(list, n-> n > 3 );
   }
    
   public static void eval(list list, predicate predicate) {
      for(integer n: list) {
         if(predicate.test(n)) {
            system.out.println(n   " ");
         }
      }
   }
}

上面代码运行结果如下

java8 功能接口

查看笔记

扫码一下
查看教程更方便
网站地图