Java8函数式接口java.util.function速查大全

Java8函数式接口java.util.function速查大全

在Java8中,提供了很多函数式接口,其中包括java.util.function中定义的函数式接口。在此文中,我们将介绍这些接口的分类、定义及用法,同时提供一些简单的示例,以方便开发者理解和使用。

分类

Supplier系列

  • Supplier<T>:用于提供一个T类型的值,无参数的输入,有一个T类型的输出;
  • BooleanSupplier:用于提供一个boolean类型的值,无参数的输入,有一个boolean类型的输出;
  • DoubleSupplier:用于提供一个double类型的值,无参数的输入,有一个double类型的输出;
  • IntSupplier:用于提供一个int类型的值,无参数的输入,有一个int类型的输出;
  • LongSupplier:用于提供一个long类型的值,无参数的输入,有一个long类型的输出;

Consumer系列

  • Consumer<T>:对一个T类型的对象进行操作,有一个T类型的输入,无输出;
  • BiConsumer<T, U>:对两个对象进行操作,有两个输入(T、U类型),无输出;

Function系列

  • Function<T, R>:将T类型的对象映射为R类型的对象,有一个T类型的输入,有一个R类型的输出;
  • BiFunction<T, U, R>:将T、U类型的对象映射为R类型的对象,有两个输入(T、U类型),有一个R类型的输出;
  • UnaryOperator<T>:无论输入什么,都返回一个T类型的对象,有一个T类型的输入,有一个T类型的输出;
  • BinaryOperator<T>:将两个T类型的对象合并为一个T类型的对象,有两个输入(T类型),有一个T类型的输出;

Predicate系列

  • Predicate<T>:用于对一个T类型的对象进行评估,返回一个boolean类型的结果,有一个T类型的输入,有一个boolean类型的输出;
  • BiPredicate<T, U>:用于对两个对象进行评估,返回一个boolean类型的结果,有两个输入(T、U类型),有一个boolean类型的输出;

Operator系列

  • IntUnaryOperator:用于对一个int类型的对象进行计算,有一个int类型的输入,有一个int类型的输出;
  • IntBinaryOperator:用于对两个int类型的对象进行计算,有两个输入(int类型),有一个int类型的输出;
  • LongUnaryOperator:用于对一个long类型的对象进行计算,有一个long类型的输入,有一个long类型的输出;
  • LongBinaryOperator:用于对两个long类型的对象进行计算,有两个输入(long类型),有一个long类型的输出;
  • DoubleUnaryOperator:用于对一个double类型的对象进行计算,有一个double类型的输入,有一个double类型的输出;
  • DoubleBinaryOperator:用于对两个double类型的对象进行计算,有两个输入(double类型),有一个double类型的输出;

示例

使用Function

Function接口的作用是将一个类型的对象转换为另一个类型的对象,下面是一个使用这个接口的示例:

public static void main(String[] args) {

    Function<String, Integer> lengthFunction = String::length;
    int length = lengthFunction.apply("Hello World");
    System.out.println(length); // 输出:11
}

在上述示例中,我们使用了String类型的对象,将其转换为Integer类型的对象,将length函数赋值给变量lengthFunction,调用lengthFunction.apply("Hello World")并传入"Hello World"时,输出的结果为11

使用Predicate

Predicate接口的作用是评估一个对象是否符合特定的条件,下面是一个使用这个接口的示例:

public static void main(String[] args) {

    Predicate<String> startsWithA = s -> s.startsWith("A");
    System.out.println(startsWithA.test("Apple")); // 输出:true
    System.out.println(startsWithA.test("Orange")); // 输出:false
}

在上述示例中,我们定义了一个startsWithA函数,它将传入的字符串是否以A开头作为其评估条件,并通过调用startsWithA.test("Apple")startsWithA.test("Orange")对两个不同的字符串进行评估,输出结果分别为truefalse

以上示例仅是java.util.function包中函数式接口的简单应用,开发者可以根据具体的业务需求选择不同的接口,实现相应的函数逻辑。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java8函数式接口java.util.function速查大全 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Mybatis如何自动生成数据库表的实体类

    要让Mybatis自动生成数据库表的实体类,需要使用Mybatis Generator这个工具。 下面是使用Mybatis Generator自动生成实体类的详细步骤: 配置generatorConfig.xml文件 在generatorConfig.xml文件中,需要指定要生成的实体类所在的包名、数据库连接信息、要生成的表名等。下面是一个示例配置: &lt…

    Java 2023年5月20日
    00
  • java输出镂空金字塔实现案例

    下面是实现java输出镂空金字塔的完整攻略。 需求说明 我们需要实现一个程序,能够打印出指定层数的镂空金字塔。例如,当我们指定金字塔总层数为5时,程序应该输出如下图所示的镂空金字塔: * * * * * * * * * * * * * * * * * * * * * * * * 实现步骤 确定金字塔的总层数n,同时计算出金字塔每一层的空格数和星号数。空格数的…

    Java 2023年5月26日
    00
  • 详解Java实现分治算法

    详解Java实现分治算法 分治算法是一种很重要的算法思想,它具有很高的实用性和普遍性。在本文中,我们将详细讲解如何使用Java实现分治算法,帮助大家更加深入地理解分治算法的实现过程。 什么是分治算法 分治算法指的是将一个大问题拆分成若干个相似的小问题,最终通过合并小问题的解来解决大问题的方法。分治算法一般包括三个步骤: 分解原问题为若干个子问题; 解决每个子…

    Java 2023年5月18日
    00
  • Java多线程编程中ThreadLocal类的用法及深入

    Java多线程编程中ThreadLocal类的用法及深入详解 什么是ThreadLocal类? ThreadLocal是Java中一个非常重要的线程工具类。它为每个线程提供了一个单独的副本,可以在整个线程的声明周期中使用,且该副本可以在任何时候被当前线程访问。该工具类通常用于线程安全地处理共享对象。 ThreadLocal类的用法 ThreadLocal类是…

    Java 2023年5月19日
    00
  • .NET程序员如何入门Spring Boot详解

    下面是“.NET程序员如何入门Spring Boot详解”的完整攻略。 1. Spring Boot简介 Spring Boot是一种在Java语言开发中创建独立的、生产级别的Spring应用程序的框架。它简化了Spring框架的配置,提供了自己的构建系统和运行时环境,使得我们可以更快速地在结构上实现并运行Spring应用程序。 通过使用Spring Boo…

    Java 2023年5月31日
    00
  • 剑指Offer之Java算法习题精讲数组与字符和等差数列

    剑指Offer之Java算法习题精讲数组与字符和等差数列 在剑指Offer面试题中,数组和等差数列相关的算法习题十分常见,该攻略将针对这些习题进行详细的讲解。 数组 在Java中,数组是一种非常基础的数据类型,它可以存储一组具有相同类型的数据。数组的下标从0开始,可以使用array[index]的方式获取数组中特定下标的元素。下面讲解两道涉及数组的算法题: …

    Java 2023年5月19日
    00
  • 解决Eclipse中java文件的图标变成空心J的问题

    当在Eclipse中新建.java文件时,如果其图标变成了一个空心的J字形状,这通常是由于Eclipse中缺少对JDT插件的支持所致。这可能会导致某些功能无法正常工作,例如无法生成Java文档和错误的代码提示。 以下是解决Eclipse中java文件的图标变成空心J的问题的完整攻略: 安装JDT插件 要解决此问题,需要在Eclipse中安装Java Deve…

    Java 2023年5月26日
    00
  • jsp Response对象页面重定向、时间的动态显示

    JSP Response对象是JSP页面中的内置对象,可以用于控制页面的输出内容和实现页面的重定向。本文将详细讲解JSP Response对象的两个重要功能:页面重定向和时间的动态显示,并且会给出两个示例说明。 页面重定向 页面重定向是指当浏览器访问一个JSP页面时,服务器将浏览器的请求重定向到另一个页面,这个过程叫做页面重定向。一般情况下,页面重定向是由服…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部