函数式接口相关知识点

news2024/11/17 19:41:41

这里写目录标题

  • 函数式接口
    • 简介以及注意点
    • 函数式接口作为方法的参数
    • 函数式接口作为方法参数
    • 常用的函数式接口
      • Supplier
        • 简介
        • 具体代码操作
      • Consumer
        • 简介
        • 具体代码演示
          • 演示1
          • 演示2
      • Predicate接口
        • 简介以及接口中的方法
        • text和negate方法
        • and和or方法
        • Function方法
          • 简介
          • 具体操作1
          • 具体操作2
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

函数式接口

简介以及注意点

在这里插入图片描述
在这里插入图片描述
lambda表达式赋值给了接口,足以说明,当接口是函数式接口时,lambda表达式就是该接口的一个实例化对象,所以这样就用多态的方式创建了一个接口对象,用该对象可以调用接口中的方法,lambda表达式可以视为接口的一个实现类,从而多态的原则进行编译运行,编译看左边,运行看右边。

函数式接口作为方法的参数

在这里插入图片描述
在这里插入图片描述
lambda表达式是函数式接口的一个实例化对象,参数与接口中抽象方法的参数对应,所以main方法里最后一句就是调用自定义方法并将lambda表达式当作参数传入,而自定义方法的形参是一个接口,所以效果相当于把接口实例化

函数式接口作为方法参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用的函数式接口

Supplier

(Java以及定义好的接口)

简介

在这里插入图片描述

具体代码操作

在这里插入图片描述
这里Supplier是一个函数式接口,是Java已经定义好了的函数式接口,只有一个无参抽象方法,get方法,他是一个生产型接口,定义时,规定他的类型,他的返回值也就同步被规定了,

Consumer

(Java以及定义好的接口)

简介

在这里插入图片描述

具体代码演示

演示1

在这里插入图片描述
自定义方法有两个参数,第一个是一个字符串,第二个是一个函数式接口,所以,main方法调用自定义函数的时候,参数位置,一个传入字符串,一个传入lambda表达式。所以自定义方法的形参列表仍旧遵循,函数体需要啥,就定义啥,不会因为接口作为参数而改变,接口也是参数的一员。

注意,自定义方法要用接口对象调用接口中的抽象方法以表示重写,接口中的非抽象方法无需重写。

演示2

在这里插入图片描述
这是接口中的第二个方法,该代码跟上面两行效果等效,因为该方法本质上还是调用了accep方法,所以抽象方法仍然被重写了

Predicate接口

(Java以及定义好的接口)

简介以及接口中的方法

在这里插入图片描述
注意 其中test方法是接口的抽象方法

text和negate方法

在这里插入图片描述
在这里插入图片描述
注意 这里先调用negate方法之后又调用test,是可以的
在这里插入图片描述

and和or方法

在这里插入图片描述
这是and方法,注意,and方法的底层还是调用了test方法,所以符合接口的原则
格式 第一个接口参数.and(第二个接口参数).test(被测试参数)
在这里插入图片描述

在这里插入图片描述
这是and方法的底层逻辑

Function方法

(java以及定义好的函数式接口)

简介

在这里插入图片描述
他可以用于将一个值转换为另一个类型的新值
其中,apply是抽象方法

具体操作1

在这里插入图片描述
注意 int不能作为泛型,所以当方法参数某个位置是泛型,那么设置int的时候 就要用int的包装类,Integer类

具体操作2

在这里插入图片描述
这是main方法里的调用方法语句,以及lambda表达式的内容
在这里插入图片描述
这是自定义方法,需要三个参数

注意 对于第一条语句,fun1.apply(s)调用之后,会进入main方法里对应的lambda表达式的代码体里进行运行,之后回到自定义方法的第一条语句,赋值给Integer

在这里插入图片描述
上面的自定义方法里的代码块可以改进成如上,利用andthen方法并最后调用apply传入最开始的参数,同时最后应该用最后的参数类型接住

这里写目录标题

  • 函数式接口
    • 简介以及注意点
    • 函数式接口作为方法的参数
    • 函数式接口作为方法参数
    • 常用的函数式接口
      • Supplier
        • 简介
        • 具体代码操作
      • Consumer
        • 简介
        • 具体代码演示
          • 演示1
          • 演示2
      • Predicate接口
        • 简介以及接口中的方法
        • text和negate方法
        • and和or方法
        • Function方法
          • 简介
          • 具体操作1
          • 具体操作2
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

一级目录

二级目录

二级目录

二级目录

这里写目录标题

  • 函数式接口
    • 简介以及注意点
    • 函数式接口作为方法的参数
    • 函数式接口作为方法参数
    • 常用的函数式接口
      • Supplier
        • 简介
        • 具体代码操作
      • Consumer
        • 简介
        • 具体代码演示
          • 演示1
          • 演示2
      • Predicate接口
        • 简介以及接口中的方法
        • text和negate方法
        • and和or方法
        • Function方法
          • 简介
          • 具体操作1
          • 具体操作2
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

一级目录

二级目录

二级目录

二级目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL语句之DDL语言

说明:DDL(Data Definition Language,数据定义语言),用来定义数据库对象(数据库、表),包括了数据库和表的创建、查询、使用和删除操作。 一、数据库操作 新安装的数据库,默认有以下四个数据库&…

计算机网络-数据链路层

概念 结点:主机、路由器 链路:结点间物理通道 数据链路:结点间逻辑通道,控制数据传输协议的硬件和软件加到链路上构成数据链路 帧:链路层的协议数据单元,封装网络层数据报 数据链路层负责通过一条链路从一…

银行转账问题(死锁)

本文主要讲述死锁的一个经典案例—银行转账问题,并对该问题进行定位、修复。 1. 问题说明 当账户A对账户B进行转账时, 首先需要获取到两把锁:账户A和账户B的锁。获取两把锁成功,且余额大于0,则扣除转出人的余额&…

我记不住的那些C语言的struct知识

背景: 最近在重学C语言,目的是为了能看懂操作系统的底层代码,也为后续使用C语言开发一个类似redis数据库的中间件做准备,于是又重新踏上了学习C语言的道路,早在上学期间就学习过C语言,但是很久都不用了&…

ssm学习-spring01

Spring_day01 今日目标 掌握Spring相关概念完成IOC/DI的入门案例编写掌握IOC的相关配置与使用掌握DI的相关配置与使用1,课程介绍 对于一门新技术,我们需要从为什么要学、学什么以及怎么学这三个方向入手来学习。那对于Spring来说: 1.1 为什么要学? 从使用和占有率看 Spri…

使用 ChatGPT API 构建系统(一):分类

今天我学习了DeepLearning.AI的 Building Systems with the ChatGPT API 的在线课程,我想和大家一起分享一下该门课程的一些主要内容。 下面是我们通过Openai API来访问ChatGPT模型的主要代码: import openai#您的openai的api key openai.api_key YOUR…

chatgpt赋能python:Python删除节点:从入门到实践

Python删除节点:从入门到实践 在任何编程语言中,删除节点都是一个极为常见的操作。在Python中,它同样非常重要,因为我们通常会使用Python处理各种数据结构,诸如树、链表等等。但是,删除节点并不总是一件容…

C++类和对象 -- 知识点补充

补充 const成员函数static成员友元内部类匿名对象拷贝对象时的一些编译器优化 const成员函数 将const修饰的成员函数称为const成员函数,const修饰类成员函数,实际是修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的成员进行修改。…

javaWeb ssh自习室管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh自习室管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,…

预报名通道已开启,2023第11届国际生物发酵展,8月4-6日上海见!

新机遇、新挑战、新发展 同期展会:酵素产品与益生产品展 制药机械与包装技术展 生化仪器及实验室设备展 合成生物技术与生物制造展 展会时间: 2023年8月4日 9:00-17:00 2023年8月5日 9:00-17:00 2023年8月6日 9:00-15:00 展会地点&#xff1a…

【数据结构】栈和队列选择题和面试编程题

目录 一、选择题 二、栈和队列的面试题 1、括号匹配问题 1.1 题目说明 1.2 题目解析 2、用队列实现栈 2.1 题目说明 2.2 题目解析 3、用栈实现队列 3.1 题目说明 3.2 题目解析 一、选择题 1、若进栈序列为 1,2,3,4 ,进栈过程中可以出栈,则下列不可能的…

软考A计划-电子商务设计师-信息安全知识

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

安全防御——IDS(入侵检测系统)

安全防御——IDS(入侵检测系统) IDS介绍为什么需要IDSIDS的工作原理IDS的工作过程第一步:信息收集第二步:数据分析 IDS的主要检测方法1、模式匹配(误用检测)2、统计分析(异常检测)3、…

chatgpt赋能python:Python创建venv的完全指南

Python创建venv的完全指南 在Python开发中,虚拟环境是一个非常有用的工具。它可以让我们在同一台计算机上拥有多个Python环境,而不会互相干扰。在本文中,我们将介绍如何使用Python创建venv(虚拟环境)。 什么是venv&a…

4-5.配置信息和路由信息

一、配置信息 app.run()的参数 参数1:host,如果我们不指定,默认值是127.0.0.1。参数2:port,如果我们不指定,默认值是5000。参数3:debug,调试模式,如果不指定&#xff0…

chatgpt赋能python:Python创建画布语句

Python 创建画布语句 在数据可视化的领域,画布(Canvas)是一个重要的概念。画布可以视为一个空白的像素或向量画布,用于绘制图表、图形、图像和动画等。Python 提供了多种创建画布的方式,其中包括使用第三方库和内置库…

哲学家就餐问题(死锁)

本文主要讲述死锁的一个经典案例—哲学家就餐问题,并对该问题进行修复。 1. 问题描述 看上图,有五位哲学家,每天循环做两件事:思考,吃面。吃面时每人面前都有一个盘子,盘子左边和右边都有一根筷子&#xff…

5.3 树和二叉树的抽象数据类型定义

博主简介:一个爱打游戏的计算机专业学生博主主页: 夏驰和徐策所属专栏:算法设计与分析 1.什么是树的抽象数据类型定义 树的抽象数据类型定义是指对树这种数据结构的一种抽象描述,其中包括了树的基本操作和性质。它定义了树作为一…

基于深度学习的目标姿态检测方法_kaic

目录 摘要 第1章 引言 1.1 研究背景和意义 1.2 国内外研究现状 1.3 主要内容 第2章 单目相机的目标姿态检测技术 2.1单目相机的工作原理 2.2目标姿态检测 2.3已有的目标姿态检测方法及其局限性 2.4本章总结 第3章 构建数据集 3.1 数据集来源 3.2数据集标注 3.3数据集分析 3.4本…

基于Springboot的社区论坛系统(源代码+数据库)055

部分代码地址 https://gitee.com/ynwynwyn/forum-public 基于Springboot的社区论坛系统(源代码数据库) 一、系统介绍 前台: 话题列表,搜索话题,发布话题通过标签筛选话题个人设置:修改个人信息,查看发布话题记录&a…