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

函数式接口总结

函数式接口总结

四大核心接口

接口方法签名用途示例
Function<T, R>R apply(T t)转换型,输入 T 返回 RFunction<String, Integer> f = String::length;
Consumervoid accept(T t)消费型,只进不出Consumer<String> c = System.out::println;
SupplierT get()供给型,只出不进Supplier<Double> s = Math::random;
Predicateboolean test(T t)断言型,返回布尔值Predicate<String> p = String::isEmpty;

分类速查

Function 系(转换型,有输入有输出)

接口输入输出特有方法
Function<T,R>TRandThen,compose,identity()
BiFunction<T,U,R>T, URandThen
UnaryOperator<T>TT继承 Function,identity()
BinaryOperator<T>T, TT继承 BiFunction,minBy,maxBy
IntFunction<R>intRapply
LongFunction<R>longRapply
DoubleFunction<R>doubleRapply
ToIntFunction<T>TintapplyAsInt
ToLongFunction<T>TlongapplyAsLong
ToDoubleFunction<T>TdoubleapplyAsDouble
IntToLongFunctionintlongapplyAsLong
IntToDoubleFunctionintdoubleapplyAsDouble
LongToIntFunctionlongintapplyAsInt
LongToDoubleFunctionlongdoubleapplyAsDouble
DoubleToIntFunctiondoubleintapplyAsInt
DoubleToLongFunctiondoublelongapplyAsLong
ToIntBiFunction<T,U>T, UintapplyAsInt
ToLongBiFunction<T,U>T, UlongapplyAsLong
ToDoubleBiFunction<T,U>T, UdoubleapplyAsDouble

Consumer 系(消费型,有输入无输出)

接口输入特有方法
Consumer<T>TandThen,accept
BiConsumer<T,U>T, UandThen,accept
IntConsumerintandThen,accept
LongConsumerlongandThen,accept
DoubleConsumerdoubleandThen,accept
ObjIntConsumer<T>T, intaccept
ObjLongConsumer<T>T, longaccept
ObjDoubleConsumer<T>T, doubleaccept

###Supplier 系(供给型,无输入有输出)

接口输出示例
Supplier<T>T() -> new User()
BooleanSupplierboolean() -> true
IntSupplierint() -> 42
LongSupplierlongSystem::currentTimeMillis
DoubleSupplierdoubleMath::random

Predicate 系(断言型,返回 boolean)

接口输入特有方法
Predicate<T>Tand,or,negate,isEqual
BiPredicate<T,U>T, Uand,or,negate
IntPredicateintand,or,negate
LongPredicatelongand,or,negate
DoublePredicatedoubleand,or,negate

命名规律速记

前缀/后缀含义示例
Bi两个参数BiFunction,BiConsumer,BiPredicate
Unary一元,输入输出同类型UnaryOperator<T>Function<T,T>
Binary二元,输入输出同类型BinaryOperator<T>BiFunction<T,T,T>
ToInt/ToLong/ToDouble返回基本类型ToIntFunction<T>
Int/Long/Double前缀参数是基本类型IntFunction<R>,IntConsumer
Obj+ 基本类型对象 + 基本类型参数ObjIntConsumer<T>
http://www.cnnetsun.cn/news/1901005.html

相关文章:

  • C++面试高频:RAII 与资源管理
  • WarcraftHelper魔兽争霸III优化指南:免费解决宽屏适配、地图加载与帧率限制
  • 基于 FastAPI + Vue 深度定制的全栈自动化执行引擎设计全解
  • 高效解决华硕笔记本性能管理的GHelper实战指南
  • Joy-Con手柄修复指南:3个高效技巧彻底解决漂移和连接问题
  • 从吐槽到规则:Karpathy 如何给 AI 编程立规矩
  • SOONet模型。NET生态集成开发:在C#应用中实现视频智能分析
  • SDMatte企业级部署架构:高可用与弹性伸缩方案设计
  • 解锁音乐自由:ncmdump让网易云NCM文件随处播放
  • 高效掌握Blender3mfFormat:从3D建模到3D打印的专业工作流优化指南
  • 时序差分学习避坑指南:为什么你的Sarsa算法总在悬崖边翻车?
  • 三月七小助手:5步掌握崩坏星穹铁道全自动游戏助手终极指南
  • cv_unet_image-colorization优化升级:异常捕获与错误提示优化详解
  • 【51单片机4位数循环小数位移数值位移】2023-6-9
  • 【JavaScript】对象遍历方法汇总
  • 终极指南:5分钟免费为PotPlayer安装百度字幕翻译插件
  • 如何参与Coconut开源函数式编程项目:完整贡献指南
  • 128. Rancher 2.12.1 中 Pod 过滤无法正常工作
  • 8.1 模块化与依赖管理
  • Bukkit源码分析:深入理解Minecraft Mod API内部实现原理
  • 手把手教你用AI读脸术:快速搭建人脸年龄性别识别API
  • 科哥定制FunASR镜像实测:一键部署中文语音识别,小白也能轻松上手
  • CMAKE实战指南:宏定义的五种高效配置策略
  • 5分钟搞定!Ollama部署DeepSeek-R1推理模型,小白也能用的AI解题工具
  • 【Oracle篇】伪列之Version Query:全链路追踪行数据变更的所有记录(除记录行数据的最后修改时间外,还可追溯其修改前后的内容及对应的修改时间)(第二篇,总共六篇)
  • Harness Engineering 如何让大模型稳定落地生产环境!
  • 5个关键步骤:C# OpenCVSharp如何让背景分割快10倍?
  • HanekeSwift网络获取器终极指南:从URL到缓存的完整流程解析
  • 软件销售预测中的市场趋势分析
  • Phi-4-mini-reasoning惊艳效果:同一逻辑题三种解法路径对比生成