网站建设 销售人员渝发建设官方网站

bicheng/2026/1/27 0:07:52/文章来源:
网站建设 销售人员,渝发建设官方网站,网页产品设计作品集,wordpress优化图片分离5.1 概述 只有一个抽象方法的接口我们称之为函数接口。 JDK的函数式接口都加上了 FunctionalInterface 注解进行标识。但是无论是否加上该注解只要接口中只有一个抽象方法#xff0c;都是函数式接口。 在Java中#xff0c;抽象方法是一种没有方法体#xff08;实现代码FunctionalInterface 注解进行标识。但是无论是否加上该注解只要接口中只有一个抽象方法都是函数式接口。 在Java中抽象方法是一种没有方法体实现代码的方法只有声明而没有具体的实现。它用关键字 abstract 进行声明通常存在于抽象类或接口中。抽象方法的存在是为了让子类或实现类强制性地提供对这个方法的具体实现。 以下是抽象方法的一些特点和规则 没有方法体 抽象方法只有方法声明没有具体的实现代码。 关键字 abstract 抽象方法使用 abstract 关键字进行声明。 存在于抽象类或接口中 抽象方法通常存在于抽象类或接口中。如果一个类中包含抽象方法那么该类必须被声明为抽象类。 强制子类实现 子类继承抽象类或实现接口时必须提供抽象方法的具体实现否则子类也必须声明为抽象类。 下面是一个简单的例子演示了抽象方法的使用 abstract class Shape {// 抽象方法表示计算面积的操作abstract double calculateArea(); }class Circle extends Shape {double radius;Circle(double radius) {this.radius radius;}// 实现抽象方法Overridedouble calculateArea() {return Math.PI * radius * radius;} }class Rectangle extends Shape {double length;double width;Rectangle(double length, double width) {this.length length;this.width width;}// 实现抽象方法Overridedouble calculateArea() {return length * width;} }public class Main {public static void main(String[] args) {Circle circle new Circle(5);System.out.println(Circle Area: circle.calculateArea());Rectangle rectangle new Rectangle(4, 6);System.out.println(Rectangle Area: rectangle.calculateArea());} }在上述例子中Shape 类是一个抽象类包含了一个抽象方法 calculateArea。Circle 和 Rectangle 类都继承自 Shape 类并分别实现了 calculateArea 方法。这样通过抽象方法我们可以在不同的子类中提供特定的实现实现多态性。 5.2 常见函数式接口 在Java中函数式接口是一个只包含一个抽象方法的接口。从Java 8开始引入了lambda表达式和函数式接口的概念使得函数式编程变得更加便利。以下是一些常见的函数式接口 Runnable 方法签名 void run()用于表示可以在一个线程中运行的代码块。 Callable 方法签名 V call() throws Exception与Runnable类似但可以返回一个结果并抛出异常。 Comparator 方法签名 int compare(T o1, T o2)用于比较两个对象。常用于排序算法或集合操作。 ActionListener 方法签名 void actionPerformed(ActionEvent e)用于处理图形用户界面 (GUI) 中的动作事件。 Callable 方法签名 V call() throws Exception用于表示一个可以调用并返回结果或抛出异常的任务。 Supplier 方法签名 T get()用于提供一个值。通常在延迟计算中使用只有在需要时才计算。 Consumer 方法签名 void accept(T t)用于接受一个参数并执行某些操作没有返回值。 Function 方法签名 R apply(T t)用于接受一个参数并返回结果。 Predicate 方法签名 boolean test(T t)用于测试某个条件是否满足返回一个布尔值。 BiFunction 方法签名 R apply(T t, U u)与Function类似但接受两个参数。 UnaryOperator 方法签名 T apply(T t)表示一元操作接受一个参数并返回结果参数和返回值的类型相同。 BinaryOperator 方法签名 T apply(T t1, T t2)表示二元操作接受两个参数并返回结果参数和返回值的类型相同。 这些函数式接口在java.util.function包中定义。它们为Lambda表达式提供了一种方便的方式使得在Java中进行函数式编程变得更加简洁和灵活。 - Consumer 消费接口 根据其中抽象方法的参数列表和返回值类型知道我们可以在方法中对传入的参数进行消费。 Consumer 是 Java 中的一个函数式接口用于表示接受一个参数并在处理后不返回任何结果的操作。它包含一个名为 accept 的抽象方法该方法接受一个参数执行某些操作但没有返回值。 接口定义如下 FunctionalInterface public interface ConsumerT {void accept(T t);// 其他默认方法和静态方法省略 }Consumer 接口的泛型类型 T 表示参数的类型。你可以使用 Consumer 接口来执行各种消费操作例如打印、修改对象的状态等。 以下是一个简单的例子演示了如何使用 Consumer 接口 import java.util.ArrayList; import java.util.List; import java.util.function.Consumer;public class ConsumerExample {public static void main(String[] args) {// 创建一个列表ListString names new ArrayList();names.add(Alice);names.add(Bob);names.add(Charlie);// 使用 Consumer 接口打印每个名称ConsumerString printName (String name) - System.out.println(name);// 遍历列表并对每个元素执行 Consumer 操作names.forEach(printName);} }在这个例子中我们创建了一个 Consumer 对象 printName它负责打印字符串。然后我们使用 forEach 方法遍历名字列表并对每个名字应用 printName 操作。 注意由于 Consumer 是一个函数式接口因此可以使用 lambda 表达式来简化匿名类的创建。在上述例子中(String name) - System.out.println(name) 就是一个 Consumer 的 lambda 表达式。 - Function 计算转换接口 根据其中抽象方法的参数列表和返回值类型知道我们可以在方法中对传入的参数计算或转换把结果返回 Function 是 Java 中的一个函数式接口用于表示接受一个参数并返回结果的操作。它包含一个名为 apply 的抽象方法该方法接受一个参数并返回计算的结果。 接口定义如下 FunctionalInterface public interface FunctionT, R {R apply(T t);// 其他默认方法和静态方法省略 }Function 接口的泛型类型 T 表示输入的参数类型而泛型类型 R 表示返回值的类型。你可以使用 Function 接口来执行各种转换和计算操作。 以下是一个简单的例子演示了如何使用 Function 接口 import java.util.function.Function;public class FunctionExample {public static void main(String[] args) {// 创建一个 Function 对象用于将字符串转换为整数FunctionString, Integer stringToInteger Integer::parseInt;// 使用 apply 方法进行转换Integer result stringToInteger.apply(123);System.out.println(Result: result); // 输出: Result: 123} }在这个例子中我们创建了一个 Function 对象 stringToInteger它负责将字符串转换为整数。然后我们使用 apply 方法将字符串 123 应用于 stringToInteger得到转换后的整数结果。 由于 Function 是一个函数式接口因此可以使用 lambda 表达式来简化匿名类的创建。在上述例子中Integer::parseInt 就是一个 Function 的 lambda 表达式。 - Predicate 判断接口 根据其中抽象方法的参数列表和返回值类型知道我们可以在方法中对传入的参数条件判断返回判断结果 Predicate 是 Java 中的一个函数式接口用于表示一个断言判断条件接受一个参数并返回一个布尔值。它包含一个名为 test 的抽象方法该方法接受一个参数并返回一个布尔值表示是否满足某个条件。 接口定义如下 FunctionalInterface public interface PredicateT {boolean test(T t);// 其他默认方法和静态方法省略 }Predicate 接口的泛型类型 T 表示输入的参数类型。你可以使用 Predicate 接口来进行各种条件判断例如筛选集合元素、过滤数据等。 以下是一个简单的例子演示了如何使用 Predicate 接口 import java.util.Arrays; import java.util.List; import java.util.function.Predicate;public class PredicateExample {public static void main(String[] args) {// 创建一个 Predicate 对象用于判断字符串是否包含字母 aPredicateString containsA s - s.contains(a);// 创建一个字符串列表ListString words Arrays.asList(apple, banana, orange, grape);// 使用 Predicate 进行筛选System.out.println(Words containing a:);for (String word : words) {if (containsA.test(word)) {System.out.println(word);}}} }在这个例子中我们创建了一个 Predicate 对象 containsA它负责判断字符串是否包含字母 “a”。然后我们使用该 Predicate 对象对字符串列表进行筛选只输出包含字母 “a” 的单词。 由于 Predicate 是一个函数式接口因此可以使用 lambda 表达式来简化匿名类的创建。在上述例子中s - s.contains(a) 就是一个 Predicate 的 lambda 表达式。 - Supplier 生产型接口 根据其中抽象方法的参数列表和返回值类型知道我们可以在方法中创建对象把创建好的对象返回。 Supplier 是 Java 中的一个函数式接口用于表示一个生产者不接受任何参数但返回一个结果。它包含一个名为 get 的抽象方法该方法不接受任何参数并返回一个结果。 接口定义如下 FunctionalInterface public interface SupplierT {T get();// 其他默认方法和静态方法省略 }Supplier 接口的泛型类型 T 表示返回值的类型。你可以使用 Supplier 接口来生成或提供数据通常在需要延迟计算或按需生成值的场景中使用。 以下是一个简单的例子演示了如何使用 Supplier 接口 import java.util.function.Supplier;public class SupplierExample {public static void main(String[] args) {// 创建一个 Supplier 对象用于提供随机数SupplierInteger randomSupplier () - (int) (Math.random() * 100);// 获取并输出随机数int randomNumber randomSupplier.get();System.out.println(Random Number: randomNumber);} }在这个例子中我们创建了一个 Supplier 对象 randomSupplier它负责生成一个介于 0 到 100 之间的随机整数。然后我们使用 get 方法获取并输出这个随机数。 由于 Supplier 是一个函数式接口因此可以使用 lambda 表达式来简化匿名类的创建。在上述例子中() - (int) (Math.random() * 100) 就是一个 Supplier 的 lambda 表达式。 5.3 常用的默认方法 and 我们在使用Predicate接口时候可能需要进行判断条件的拼接。而and方法相当于是使用来拼接两个判断条件。 例如 打印作家中年龄大于17并且姓名的长度大于1的作家。 ListAuthor authors getAuthors();StreamAuthor authorStream authors.stream();authorStream.filter(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getAge()17;}}.and(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getName().length()1;}})).forEach(author - System.out.println(author)); or 我们在使用Predicate接口时候可能需要进行判断条件的拼接。而or方法相当于是使用 || 来拼接两个判断条件。 例如 打印作家中年龄大于17或者姓名的长度小于2的作家。 // 打印作家中年龄大于17或者姓名的长度小于2的作家。ListAuthor authors getAuthors();authors.stream().filter(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getAge()17;}}.or(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getName().length()2;}})).forEach(author - System.out.println(author.getName())); negate Predicate接口中的方法。negate方法相当于是在判断添加前面加了个! 表示取反 例如 打印作家中年龄不大于17的作家。 // 打印作家中年龄不大于17的作家。ListAuthor authors getAuthors();authors.stream().filter(new PredicateAuthor() {Overridepublic boolean test(Author author) {return author.getAge()17;}}.negate()).forEach(author - System.out.println(author.getAge()));

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

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

相关文章

工程设计东莞网站建设技术支持住房和城乡建设部网站诚信评价

实验理论依据: \0、NULL、0和0在C语言中表示的意义是不同的: \0:这是一个空字符,ASCII值为0。常用于字符串结束的标志。 NULL:这是一个宏,表示空指针,用于初始化指针变量。 0:这是数字0&#…

假网站连接怎么做的深圳vi设计公司 全力设计

身份证信息批量识别OCR是一项解决方案,它能够将身份证照片打包成zip格式或通过URL地址进行提交,并能够识别照片中的文本信息。最终,用户可以将识别结果生成为excel文件进行下载。 API接口功能: 1. 批量识别:支持将多…

穷游 网站开发搭建网站一般多少钱

2009 结束,2010 年的 Web 会是什么样,或者说,未来的 Internet 意味着什么,2010 会是值得关注的一年。本文从 5 个方面展望 2010 年的 Web,包括 HTML5,CSS3,字体服务技术;浏览器&…

360安全网站怎么做号码认证推广模式怎么写

层序遍历、回溯、由两种遍历序列逆推二叉树 513.找树左下角的值 思路: 使用层序遍历,只需要记录最后一行第一个节点的数值就可以了。 特殊情况: 代码实现 class Solution { public:int findBottomLeftValue(TreeNode* root) {int val;//利用…

网络推广网站套餐公司网址要收费吗

将csv或者txt格式的文件导入SQLite一般有两种方式:使用pandas.readcsv()读取后,用to_sql方法写入数据库使用SQLiteStudio创建表格,再导入数据但是这两种方法在数据量比较大的时候会非常慢,这里提供一种使用官网提供的SQLite.exe命…

算命公司网站建设制作开发方案网络推广营销方式

本文将为开发者们提供一个详细的指南,教你如何将一对一直播美颜SDK集成到你的应用中,以提供更具吸引力的直播体验。 -为什么选择一对一直播美颜SDK? 在开始之前,让我们先明确一下为什么选择一对一直播美颜SDK是一个明智的决定。…

做问卷调查赚钱的网站好便宜网站制作公司

atitit.Sealink2000国际海运信息管理系统 操作手冊 文件夹 第一章 使用说明 第一节 系统登录 双击桌面的系统运行程序图标。进入选择数据库的对话框,如图1-1所看到的。选择对应的数据库后,点击【OK】button或在所选数据库上双击。进入登录身份…

西安网站建设那家伙网站建设目标及需求分析

用户需求:Android在系统文件夹找到一个文件想发送自己开发的app进行处理该怎么办? 这时候可以采用两个Activity,一个Activity用作Launcher,一个用于处理发送的文件;具体Activity intent-filter该怎么写了?可以参考下面的代码: <intent-filter><action androi…

帮人家做网站怎么赚钱静态网页设计实训报告

作为电子行业的“风向标”&#xff0c;CES 2024&#xff08;国际消费电子展&#xff09;于1月9日至12日在美国拉斯维加斯举办。本届展会可谓是AI的盛宴&#xff0c;芯片、AI PC、智能家居、汽车科技、消费电子等领域与AI相关的前沿成果接连发布&#xff0c;引领人工智能领域的科…

淮北市矿务局工程建设公司网站免费制作图片加文字

终于发现问题了。。。太不容易了。。。5555昨天偶然想起来把一个项目中生成静态页配置文件做成一个单独到config文件。由于以前没有接触过自定义Configuration动手前上网查一下资料&#xff0c;发现蛮简单的。。定义section。。。定义属性。。。ConfigurationProperty声明。很快…

红色企业网站模板网页游戏排行榜2022前十名最新排名图片

一、CSS盒模型 CSS 盒模型规定了处理元素内容、内边距、边框 和 外边距 的方式。最内部分是元素内容&#xff0c;直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距。 1.元素的尺寸: height 设置元素的高度。属性值&#xff1a;auto&am…

手机网站建设设计公司核酸检测最新消息

promisify 是 Node.js 标准库 util 模块中的一个函数。它用于将遵循 Node.js 回调风格的函数转换为返回 Promise 的函数。这使得你可以使用 async/await 语法来等待异步操作完成&#xff0c;从而让异步代码看起来更像同步代码。 在 Node.js 的回调风格中&#xff0c;函数通常接…

建设信基金管理有限公司网站WordPress批量建站系统

背景在当今这个互联网的时代无非要解决两大难题&#xff0c;其一是信息安全&#xff0c;其二就是数据的存储。而信息安全则是在数据存储的基础之上。一个公司从刚开始成立到发展成一个有上百人甚至上千人团队的时候&#xff0c;公司的业务量是呈上升趋势&#xff0c;客户及用户…

免费素材网站大全宁波手机网站开发公司

vue使用富文本编辑器上传图片&#xff1a; 我是用的是wangEditor 富文本编辑器 demo:http://www.wangeditor.com/ 1).安装依赖:npm install wangeditor 2).我自己是创建了一个组件这样再用到的时候可以直接调用&#xff08;可能有更简单的方法&#xff09; <template lang&q…

织梦网站模板如何安装教程视频教程做静态网站接单

解释&#xff1a; Windows PowerShell中的Git乱码通常是因为字符编码不正确或Git配置不支持Windows系统的默认编码导致的。Git在处理文件时可能使用UTF-8编码&#xff0c;而Windows系统的命令行工具&#xff08;如PowerShell&#xff09;默认使用的是Windows-1252或GBK编码。 …

大型网站建设建设公司网龙沧州网站制作

新学习JavaScript&#xff0c;就碰到这么一个需求&#xff0c;几乎网上的方法都试过了。写出了总结下使用的方法&#xff1a;clipboard插件下载地址&#xff1a;https://github.com/zenorocha/clipboard.js/tree/master引入插件&#xff1a;目录\clipboard.js-master\dist\clip…

怎样做软件网站公司网站怎么申请怎么注册

文章目录 零 算法介绍一 例题介绍 使用最小花费爬楼梯问题分析 Leetcode例题与思路[118. 杨辉三角](https://leetcode.cn/problems/pascals-triangle/)解题思路题解 [53. 最大子数组和](https://leetcode.cn/problems/maximum-subarray/)解题思路题解 [96. 不同的二叉搜索树](h…

网站建设平台官网河间米各庄品牌宣传型网站有哪些

1、冷热分离&#xff1a; 一个表里最好不要存在即有常修改的数据又有不常修改的数据&#xff0c;一个好的做法是&#xff0c;把常修改更新的字段当做热表单独建表&#xff0c;同理不经常修改更新的字段当做冷表单独建表。 2、控制B树的高度&#xff1a; 也就是控制一个表存储的…

辽宁省城乡建设网站建设网站的需要学习哪些课程

目录 一、实验题目 机器学习在车险定价中的应用 二、实验设置 1. 操作系统&#xff1a; 2. IDE&#xff1a; 3. python&#xff1a; 4. 库&#xff1a; 三、实验内容 实验前的猜想&#xff1a; 四、实验结果 1. 数据预处理及数据划分 独热编码处理结果&#xff08;以…

dw怎么做网站教程新网站怎么发外链

2019独角兽企业重金招聘Python工程师标准>>> 一、static关键字 原来一个类里面的成员变量&#xff0c;每new一个对象&#xff0c;这个对象就有一份自己的成员变量&#xff0c;因为这些成员变量都不是静态成员变量。对于static成员变量来说&#xff0c;这个成员变量只…