java.util.function包下类的实现的例子

java.util.function 包提供了许多函数式接口,这些接口可以以函数式编程的风格编写代码。以下是一些常见接口的使用示例:

  1. Function
    这个接口用于表示一个接受类型为T的参数并返回类型为R的结果的函数。

    Function<String, Integer> stringToInt = (String s) -> Integer.parseInt(s);
    Integer number = stringToInt.apply("123"); // number will be 123
    
  2. Consumer
    这个接口用于表示一个接受类型为T的参数并执行某些操作的函数,通常用于消费数据而不是返回结果。

    Consumer<String> printString = (String s) -> System.out.println(s);
    printString.accept("Hello, World!"); // 输出 "Hello, World!"
    
  3. Predicate
    这个接口用于表示一个接受类型为T的参数并返回布尔值的函数,通常用于判断条件。

    Predicate<String> isEmpty = (String s) -> s.isEmpty();
    boolean condition = isEmpty.test(""); // condition will be true
    
  4. Supplier
    这个接口用于表示一个没有参数但返回类型为T的结果的函数,通常用于提供值。

    Supplier<String> randomString = () -> "Random String";
    String random = randomString.get(); // 获取一个随机字符串
    
  5. UnaryOperator
    这个接口用于表示一个接受类型为T的参数并返回相同类型的结果的函数,通常用于一元操作。

    UnaryOperator<String> toUpperCase = String::toUpperCase;
    String upperCase = toUpperCase.apply("hello"); // upperCase will be "HELLO"
    
  6. BinaryOperator
    这个接口用于表示一个接受两个相同类型T的参数并返回相同类型的结果的函数,通常用于二元操作。

    BinaryOperator<Integer> add = (a, b) -> a + b;
    int sum = add.apply(10, 20); // sum will be 30
    
  7. BiFunction
    这个接口用于表示一个接受两个参数,一个类型为T,另一个类型为U,并返回类型为R的结果的函数。

    BiFunction<String, Integer, String> concatWithNumber = (String s, Integer i) -> s + i;
    String result = concatWithNumber.apply("Hello", 123); // result will be "Hello123"
    

通过这些接口,可以在Java 8及以上版本中编写更加简洁和表达力更强的代码。这些接口在集合操作、流式API(如Stream)中尤其有用,因为它们提供了一种强大的方式来处理数据流。

你可能感兴趣的:(java,java,python,开发语言)