当前位置: 首页 > news >正文

Java 中常用内置接口函数

        在 Java 8 及以后的版本中,引入了许多函数式编程的特性,其中最重要的就是内置的函数式接口。这些接口使得编写更简洁、可读性更强的代码成为可能。今天我将介绍四个常用的内置接口:PredicateFunctionConsumer 和 Supplier,并提供示例代码以帮助理解其用法。

1. Supplier 接口

  Supplier<T> 是一个供给型接口,它没有输入参数,但会返回一个类型为 T 的对象。常用于需要延迟计算或生成对象的场景。

源码

示例

package com.school;import java.util.Arrays;
import java.util.function.Supplier;/*** 文件名: null.java* 作者: 20526* 创建时间: 2024/9/8 14:08* 描述:Supplier接口*/
public class SupplierDemo {public static void main(String[] args) {testSupplier(()->{int[] arr = {1, 2, 20, 4, 9};Arrays.sort(arr);return arr[arr.length - 1];});}/*** 供给型接口Supplier<T>的使用* 传入一个泛型参数T,返回类型为T的对象*/public static void testSupplier(Supplier<Integer> supplier) {int max = supplier.get();System.out.println("最大值: " + max);}
}

2. Consumer 接口

  Consumer<T> 是一个消费型接口,它接受一个类型为 T 的输入参数,但没有返回值。常用于执行某些操作,例如打印或处理数据。

源码

示例

package com.school;import java.util.function.Consumer;/*** 文件名: null.java* 作者: 20526* 创建时间: 2024/9/8 14:14* 描述:Consumer接口*/
public class ConsumerDemo {public static void main(String[] args) {//Lambda表达式作省略写法testconsume( s-> System.out.println(s.toUpperCase()));// 使用匿名内部类实现Consumer接口testconsume(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s.toUpperCase());}});}/*** 消费型接口Consumer* 传入一个泛型T,没有返回值,用于消费数据*/public static void testconsume(Consumer<String> consumer) {System.out.println("a a a");consumer.accept("Hello World");}
}

3. Function 接口

  Function<T, R> 是一个函数型接口,它接受一个类型为 T 的输入参数,并返回一个类型为 R 的结果。常用于转换数据类型或执行某些计算。

源码

示例

package com.school;import java.util.function.Function;/*** 文件名: null.java* 作者: 20526* 创建时间: 2024/9/8 14:30* 描述:Function接口*/
public class FunctionDemo {public static void main(String[] args) {getNumber( s -> Integer.parseInt(s));}public static void getNumber(Function<String, Integer> function) {Integer i = function.apply("123");System.out.println("i = "+i);}}

4. Predicate 接口

  Predicate<T> 是一个断言型接口,它接受一个类型为 T 的输入参数,并返回一个布尔值。常用于过滤或测试条件。

源码

示例

package com.school;import java.util.function.Predicate;/*** 文件名: PredicateDemo.java* 作者: 20526* 创建时间: 2024/9/8 14:45* 描述: Predicate接口*/
public class PredicateDemo {public static void main(String[] args) {testPredicate(s -> s.length() > 5);}public static void testPredicate(Predicate<String> predicate) {String testString = "HelloWorld";boolean result = predicate.test(testString);System.out.println("字符串长度大于5: " + result);}
}

总结

        Java 的内置函数式接口提供了强大的功能,使得开发者能够以更简洁的方式编写代码。通过 SupplierConsumerFunction 和 Predicate,我们可以轻松地实现延迟计算、数据处理、类型转换和条件判断。这些接口在 Java 8 的流式 API 中得到了广泛应用,极大地提升了代码的可读性和可维护性。希望对你有所帮助。


http://www.mrgr.cn/news/22218.html

相关文章:

  • 【MySQL】MySQL中表的增删改查——(基础篇)(超详解)
  • 2025年25届最新:如何用Java SpringBoot搭建公考学习平台?
  • CTK框架(三): 插件的安装
  • SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频
  • Web开发详解
  • 【Kubernetes】常见面试题汇总(二)
  • Spring框架IOC
  • 24-9-8-读书笔记(十七)-《契诃夫文集》(三)([俄] 契诃夫 [译] 汝龙 )
  • 2024年全新deepfacelive如何对应使用直播伴侣-腾讯会议等第三方软件
  • 银行贷款产品
  • MySQL基础
  • 使用Node.js实现单文件上传功能—含代码解释
  • 一文讲懂Spring Event事件通知机制
  • Redis访问工具
  • 【Java 优选算法】双指针(上)
  • 【Dart 教程系列第 50 篇】在 Flutter 项目的国际化多语言中,如何根据翻译提供的多语言文档表格,快速生成不同语言的内容
  • 计算机毕业设计选题推荐-宠物店管理系统-Java/Python项目实战
  • JVM 调优篇4 jvm的垃圾回收中垃圾日志的阅读查看2
  • 【系统架构设计师】管道-过滤器架构
  • 单片机毕业设计-基于单片机的运动手环