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日

相关文章

  • Asp.net FileUpload+Image制作头像效果示例代码

    我们来详细讲解一下“ASP.NET FileUpload+Image制作头像效果示例代码”的完整攻略。 概述 首先,我们需要了解一些基本的概念。在 ASP.NET 中,我们可以使用 FileUpload 控件来接收用户上传的文件,使用 Image 控件来展示上传的图片。一般来说,用户上传头像时,我们需要对其进行剪裁、压缩等操作,以获得更好的用户体验。 第一步…

    Java 2023年5月19日
    00
  • Springboot中使用lombok的@Data注解方式

    下面是Springboot中使用lombok的@Data注解方式的完整攻略。 什么是Lombok Lombok是一种能够通过注解生成代码的工具,可以通过少量的注释简化Java类的定义。 在Springboot中,Lombok可以简化一个类中的getter和setter的定义,使得代码更加简洁易读。 在Springboot中使用Lombok的@Data注解 在…

    Java 2023年5月20日
    00
  • Spring整合JPA与Hibernate流程详解

    关于Spring整合JPA与Hibernate的流程,我可以给你一个完整的攻略。首先,需要了解一些基础知识: JPA JPA(Java Persistence API)是一种规范,用于在Java应用程序中管理关系数据库的数据。 Hibernate Hibernate是一个开源的ORM(对象关系映射)框架,他实现了JPA规范。 Spring Spring是一个…

    Java 2023年5月19日
    00
  • java必学必会之GUI编程

    Java必学必会之GUI编程攻略 1. GUI编程的概念 GUI是Graphical User Interface的缩写,意味着图形用户界面。GUI编程是指使用可视化工具和API,创建具有图形化用户界面的应用程序。Java提供多种GUI开发工具,如Swing、AWT、JavaFX等,其中Swing是最流行的。 2. 使用Swing进行GUI设计 2.1 创建…

    Java 2023年5月19日
    00
  • Spring五大类注解读取存储Bean对象的方法

    下面是详细的讲解“Spring五大类注解读取存储Bean对象的方法”的完整攻略。 一、概述 Spring 是一种非常受欢迎的 Java 开发框架,它提供了一套非常完整的依赖注入机制,使得开发者可以轻松地使用 Spring 来管理 Bean 对象。而 Spring 的 Bean 对象的创建方式就有五大类注解方式,它们分别是:@Component、@Reposi…

    Java 2023年5月26日
    00
  • Windows下使用IDEA搭建Hadoop开发环境的详细方法

    Windows下使用IDEA搭建Hadoop开发环境 背景 Hadoop是一个开源的分布式数据处理框架,可用于大规模数据的存储和处理。它提供了许多工具和库,可用于数据处理、流式处理和机器学习等方面。IDEA是一个强大的Java IDE,可以用于开发Java和大数据应用程序。本文将介绍如何使用IDEA搭建Hadoop开发环境。 环境准备 在开始之前,您需要准备…

    Java 2023年6月2日
    00
  • JavaWeb实现学生管理系统的超详细过程

    JavaWeb实现学生管理系统的超详细过程 本文将着重对如何使用JavaWeb技术实现一个基本的学生管理系统进行详细讲解。本文将分别介绍系统需求分析、数据库设计、项目创建、前端页面设计、后端代码编写及测试等方面的知识点。 系统需求分析 首先,我们需要明确我们要实现的系统应该具备哪些功能。在本文的学生管理系统中,我们需要实现以下功能: 实现学生的增加、删除、修…

    Java 2023年5月20日
    00
  • Jsp+Servlet实现文件上传下载 文件列表展示(二)

    下面就为您详细讲解“Jsp+Servlet实现文件上传下载 文件列表展示(二)”的完整攻略: 一、项目说明 本项目旨在通过Jsp和Servlet实现Web应用程序中的文件上传下载及文件列表展示功能。具体步骤如下: 搭建Web应用程序环境; 实现文件上传功能; 实现文件下载功能; 实现文件列表展示。 二、搭建Web应用程序环境 新建一个Web项目,命名为fil…

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