一、常用函数式接口

JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在 java.util.function 包中被提供。
下面是最简单的几个接口及使用示例。

#1.Supplier接口

java.util.function.Supplier<T> 接口仅包含一个无参的方法: T get() 。用来获取一个泛型参数指定类型的对象数据。由于这是一个函数式接口,这也就意味着对应的Lambda表达式需要“对外提供”一个符合泛型类型的对象数据。
import java.util.function.Supplier;
public class Demo08Supplier {private static String getString(Supplier<String> function) {return function.get();}public static void main(String[] args) {String msgA = "Hello"; String msgB = "World";System.out.println(getString(() ‐> msgA + msgB));}
}

#1.2 练习:求数组元素最大值

使用 Supplier 接口作为方法参数类型,通过Lambda表达式求出int数组中的最大值。提示:接口的泛型请使用 java.lang.Integer 类。
public class Demo02Test {
//定一个方法,方法的参数传递Supplier,泛型使用Integer public static int getMax(Supplier<Integer> sup){return sup.get(); }public static void main(String[] args) {int arr[] = {2,3,4,52,333,23}; //调用getMax方法,参数传递Lambdaint maxNum = getMax(()‐>{ //计算数组的最大值 int max = arr[0];for(int i : arr){if(i>max){max = i;} }return max;});System.out.println(maxNum);}
}

#2.Consumer接口

java.util.function.Consumer<T> 接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定。
疑问:什么是消费呢?

Lambda-常用函数式接口相关推荐

  1. 【java笔记】常用函数式接口(1):Supplier接口

    [java笔记]常用接口(2):Consumer接口_m0_52043808的博客-CSDN博客 [java笔记]常用函数式接口(3):Predicate接口_m0_52043808的博客-CSDN博 ...

  2. 常用函数式接口及Stream流

    1.常用函数式接口 1.1Supplier接口 ​ 功能 ​ 生产型接口,接口的泛型指定成什么类型,就生产什么类型的数据(提供函数式接口,方便使用Lambda进行简化代码) ​ 抽象方法 ​ T ge ...

  3. java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function

    文章目录 函数式接口 概念 函数式接口作为方法参数 函数式接口作为方法的返回值 常用函数式接口 Supplier接口 常用函数式接口 Consumer 函数式接口之 Predicate接口 常用接口之 ...

  4. 常用函数式接口:Consumer、Predicate、Function的方法说明解练习

    目录 一.常用函数式接口:Consumer 二.Consumer接口练习:按要求打印信息 三. 常用函数式接口:Predicate 四.Predicate接口练习:筛选满足条件数据 五.常用函数式接口 ...

  5. Java8之函数式接口及常用函数式接口

    目录 函数式接口 1.概念 2.@FunctionalInterface 3.函数式接口使用方式 常用函数式接口 1.JDK提供的函数式接口举栗 2.Supplier 3.Consumer 4.Pre ...

  6. 常用函数式接口,Stream流

    01.第一章:常用函数式接口_Predicate判断接口: 1).java.util.Function.Prdedicate(函数式接口): 2).抽象方法:1).boolean test(T t) ...

  7. 【java笔记】常用函数式接口(4):Funtion接口

    ​​​​​​​​​​​​​​[java笔记]常用函数式接口(1):Supplier接口_m0_52043808的博客-CSDN博客 [java笔记]常用接口(2):Consumer接口_m0_5204 ...

  8. lambda表达式——函数式接口Comparator

    lambda表达式--函数式接口Comparator 一.函数式接口是什么? 二.函数式接口的特点 三.default关键字 四.JDK中的函数式接口举例 五.自定义Comparator排序 一.函数 ...

  9. comparator接口_8000字长文让你彻底了解 Java 8 的 Lambda、函数式接口、Stream 用法和原理

    我是风筝,公众号「古时的风筝」.一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...

  10. Lambda、函数式接口、Stream 一次性全给你

    就在今年 Java 25周岁了,可能比在座的各位中的一些少年年龄还大,但令人遗憾的是,竟然没有我大,不禁感叹,Java 还是太小了.(难道我会说是因为我老了?) 而就在上个月,Java 15 的试验版 ...

最新文章

  1. Python 200个标准库汇总
  2. 06上半年网络工程师试题分类精讲.第一部分:计算机与网络知识(上午考试科目).第一章:计算机系统知识...
  3. idea 引入oracle驱动并打包_IDEA下从零开始搭建SpringBoot工程
  4. 杭州内推 | 阿里达摩院机器智能技术团队招聘多模态方向研究型实习生
  5. OS- -内存之虚拟内存
  6. kali 安装volatility_电子取证技术之实战Volatility工具
  7. 通用程序算法和数据结构_了解通用数据结构
  8. (第十四章)创建储存过程与创建函数
  9. xterm远程连服务器连不上_VS Code Remote 发布!开启远程开发新时代
  10. VS代码中明明有NO_BITMAP字串,提示找不到
  11. sklearn机器学习之降维(人脸图片数据集)
  12. html验证码谷歌浏览器不显示,网页不显示验证码是怎么回事?
  13. 怎么用python实现序列比对_生信学习笔记——Python+Mafft实现批量化多序列比对
  14. 高考志愿填报选专业,女孩子适合的十大职业
  15. 【MySQL】在MySQL中如何给表起别名
  16. 【C语言】给出三角形三边长,求三角形面积
  17. 路由跟踪命令 查看DNS IP Mac等
  18. Material Design学习之 Camera
  19. 高速文件服务器搭建教程,文件服务器配置教程.doc
  20. 字符串的下划线命名和驼峰命名转换

热门文章

  1. 可能是最简单易懂的人工智能入门书
  2. 革命性提升-宇宙最强的NLP预训练BERT模型(附官方代码)
  3. 机器学习初学者公众号下载资源汇总(一)
  4. 袋鼯麻麻——智能购物平台
  5. PyTorch Hub发布!一行代码调用最潮模型,图灵奖得主强推
  6. 超干货 | 一线从业者实践案例大分享:To B行业如何做增长
  7. MySQL-过滤数据
  8. VCG(VisualCodeGrepper)安装使用教程
  9. linux 本地账号密码无法登陆(shell可以登录),一直返回 登陆的login界面
  10. Nginx的页面中文乱码解决方法