课时132:内建函数式接口

简介: 在JDK 1.8之中提供有 Lambda 表达式和方法引用,但如果由开发者来定义函数式接口,需要使用“@FunctionalInterface”注解进行大量声明,于是为了方便则可以直接引用系统中的函数式接口。在系统中专门提供有一个 java.util.function 的开发包,里面可以直接使用函数式接口,共有如下几个核心接口供我们使用。

课时132:内建函数式接口

摘要:在JDK 1.8之中提供有 Lambda 表达式和方法引用,但如果由开发者来定义函数式接口,需要使用“@FunctionalInterface”注解进行大量声明,于是为了方便则可以直接引用系统中的函数式接口。

在系统中专门提供有一个 java.util.function 的开发包,里面可以直接使用函数式接口,共有如下几个核心接口供我们使用

1. 功能性函数式接口

2. 消费型函数接口

3. 供给型函数式接口

4. 断言型函数接口

 

01. 功能性函数式接口

 

1.1 接口定义


在String类中有一个方法判断是否以指定的字符串开头:public boolean startsWith(String str)

开发包中带有“Function”后缀,@FunctionalInterface

Public Interface Function<T,R>

接口使用:

import java.util.function.*,
Public class JavaDemo{
        Public static Void main(String args[]){
        Function<String,Boolean>fun=”**Hello”::startsWith;
        System.out.println(fun.apply(”**”));   
}
}

image.png

执行结果

image.png

 

02. 消费型函数接口

 

2.1 接口定义:


指的是只能进行数据的处理操作,没有任何的返回;在进行系统数据处理输出的时候使用的是:

System.out.println();
@FunctionalInterface
Public interface Consumer<T>{
      Public Void accept(T t);
接口使用:
import java.util.function.*;
Public class JavaDemo {
     Public static void main(String args[]){
         Consumer<String> con =System.out::println;
         Con.accept(”www.mldn.cn”);
    }
}

image.png

执行结果

image.png

 

03. 供给型函数式接口:


3.1接口定义


在String累中提供有转小写方法,没有接收参数,但是有返回值;

方法:

public String toLowerCase();
@FunctionalInterface
Public internface Supplier<T>{
       Public T get();
接口使用:import java.util.function.*;
Public class JavaDemo {
     Public static void main(string args【】){
     Supplier<string> sup =www.MLDNJAVA.cn::toLowerCase;
System.out.println(suo.get());
     }
}

image.png

执行结果:

image.png

 

04. 断言型函数接口

 

4.1接口定义: 进行判断处理


在String类有一个equalsIgnoreCase()方法

@FunctionalInterface
Pablic interface Predicate<T>{
        Public Boolean test(T t) ;
}

接口使用:

import java.util.function.*;
Public class JavaDemo{
Public static void main(String args[]){
      Predicate<String>pre = “mldn”:: equalsIgnoreCase;
System.out.println(pre.test(“MLDN”));
    }
}

image.png

执行结果

image.png

总结:以后对于实际项目开发之中,如果JDK本身的函数式接口可以被使用,那么就没有必要进行定义。

相关文章
|
9月前
|
SQL 关系型数据库 MySQL
开源新发布|PolarDB-X v2.4.2开源生态适配升级
PolarDB-X v2.4.2发布,新增开源Proxy组件与客户端驱动,支持读写分离、无感高可用切换及DDL在线变更,兼容MySQL生态,提升千亿级大表运维稳定性。
2094 24
开源新发布|PolarDB-X v2.4.2开源生态适配升级
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课14 纯享单机版
PolarDB不仅支持基于“共享存储+多计算节点”的集群版,还提供类似开源PostgreSQL的单机版。单机版部署简单,适合大多数应用场景,并可直接使用PostgreSQL生态插件。通过Docker容器、Git克隆代码、编译软件等步骤,即可完成PolarDB单机版的安装与配置。具体操作包括启动容器、进入容器、克隆代码、编译软件、初始化实例、配置参数及启动数据库。此外,还有多个相关教程和视频链接供参考,帮助用户更好地理解和使用PolarDB单机版。
1157 1
|
存储 关系型数据库 MySQL
mysql数据库查询时用到的分页方法有哪些
【8月更文挑战第16天】在MySQL中,实现分页的主要方法包括:1)使用`LIMIT`子句,简单直接但随页数增加性能下降;2)通过子查询优化`LIMIT`分页,提高大页码时的查询效率;3)利用存储过程封装分页逻辑,便于复用但需额外维护;4)借助MySQL变量实现,可能提供更好的性能但实现较复杂。这些方法各有优缺点,可根据实际需求选择适用方案。
1309 2
EMQ
|
JSON Linux 网络性能优化
MQTT 5.0 报文解析 02:PUBLISH 与 PUBACK
本文将介绍在 MQTT 中用于传递应用消息的 PUBLISH 报文以及它的响应报文。不管是客户端向服务端发布消息,还是服务端向订阅端转发消息,都需要使用 PUBLISH 报文。决定消息流向的主题、消息的实际内容和 QoS 等级,都包含在 PUBLISH 报文中。
EMQ
1356 113
MQTT 5.0 报文解析 02:PUBLISH 与 PUBACK
|
JavaScript 前端开发 Java
Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use;端口冲突的原理与解决方案
本文解决了Idea启动SpringBoot程序报错:Veb server failed to start. Port 8082 was already in use的问题,并通过介绍端口的使用原理和操作系统的端口管理机制,可以更有效地解决端口冲突问题,并确保Web服务器能够顺利启动和运行。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
Java
【Java系列】List数据去重的五种有效方法
目录 1:使用java8新特性stream进行List去重 (distinct()方法) 2,借助Set的特性进行去重(set和list转换去重) 3,遍历List集合,将元素添加到另一个List集合中 4,利用set集合特性保持顺序一致去重 5,使用list自身方法remove()–&gt;不推荐 1:使用java8新特性stream进行List去重 (distinct()方法) public static List&lt;String&gt; delRepeat(Lis.
610 0
【Java系列】List数据去重的五种有效方法
|
关系型数据库 MySQL 数据库
测试部署PolarDB-X 分布式与集中式
在本文中,作者详述了在CentOS 7.9上部署测试PolarDB-X分布式与集中式数据库的过程。PolarDB-X作为阿里云优化的分布式数据库,提供高稳定性和与MySQL的兼容性,是应对单体数据库扩展性和性能瓶颈的解决方案,同时也符合国产化需求。文章介绍了部署环境准备,包括关闭防火墙和SELinux,设置系统参数,安装Python3和Docker,以及配置MySQL客户端。接着,通过PXD工具部署了PolarDB-X的集中式和分布式版,遇到的问题包括阿里云镜像源异常导致的部署失败以及指定版本安装的困扰。最后,作者进行了初步的压力测试,并对文档完善、生态工具建设以及提供更多使用案例提出了建议。
49125 10
测试部署PolarDB-X 分布式与集中式
|
弹性计算 运维 程序员
2核2G阿里云服务器价格多少?2024年阿里云61元一年2核2G3M配置云服务器测评参考
2核2G阿里云服务器价格多少?2024年阿里云61元一年2核2G3M配置云服务器测评参考。随着数字化浪潮的推进,云服务器已成为企业与个人开展线上业务不可或缺的基础设施。阿里云,作为国内云服务市场的佼佼者,其轻量应用服务器因其实用性与性价比受到了广泛关注。对于众多开发者与运维工程师而言,服务器的配置与价格始终是关注的焦点。那么,阿里云2核2G轻量应用服务器的价格究竟如何呢?
931 0
|
关系型数据库 MySQL Docker
PolarDB-X安装部署初体验
本文档介绍了体验阿里云PolarDB-X分布式数据库的安装和使用过程。首先提到PolarDB-X在稳定性及性能上的优势,然后详细描述了在CentOS 7环境下遇到的Python版本不兼容和Docker容器iptables配置问题的解决方法。通过创建Python 3.8的虚拟环境解决PyYAML依赖问题,接着在解决Docker容器内部网络问题后,成功安装并启动PolarDB-X。文中强调PolarDB-X完全兼容MySQL,适合熟悉MySQL的用户,并分享了安装历史记录以供参考。
879 7
|
前端开发 JavaScript API
强强联手打造桌面应用新标杆:Angular与Electron的完美融合——从环境搭建到通信机制,全面解析构建跨平台应用的最佳实践与技巧
【8月更文挑战第31天】随着Web技术的进步,开发者们越来越多地采用Web技术来构建桌面应用程序。通过结合使用开源框架Electron及前沿的前端框架Angular,开发者能充分利用JavaScript、HTML和CSS打造出高性能且易维护的跨平台桌面应用。本文将详细介绍如何搭建基于Angular与Electron的开发环境,包括创建Angular项目、安装Electron及相关依赖、配置Electron主进程以及实现Angular应用与Electron间的通信等关键步骤,并最终将应用打包成多平台可执行文件,为读者提供了一套完整的解决方案以快速入门并实践这一强大技术组合。
911 0