JDK 8 提供的重要函数式接口:

Consumer (消费者)

  • 功能:接收一个对象,返回void。
  • 定义:void accept(T t)
  • 默认方法:Consumer andThen(Consumer after)

BiConsumer (双参消费者)

  • 功能:接收两个对象,返回void。
  • 定义:void accept(T t, U u)
  • 默认方法:BiConsumer andThen(BiConsumer after)

Supplier (提供者)

  • 功能:不接收参数,返回一个对象。
  • 定义:T get()
  • 默认方法:无

Function<T, R> (单参函数)

  • 功能:接收一个参数,返回一个参数。可理解为初阶函数 f(x)
  • 定义:R apply(T t)
  • 默认方法:
  1. 组合 Function<V, R> compose(Function before)
  2. 颠倒组合 Function<V, R> compose(Function after)
  3. 返回自身 Function<T, T> identity()

UnaryOperator<T> extends Function<T, T> (同类型单参函数)

  • 功能:接收一个参数,返回一个同类型参数。
  • 定义:T apply(T t)
  • 默认方法:
  1. 返回自身 UnaryOperator<T> identity()

BiFunction<T, U, R> (双参函数)

  • 功能:接收两个参数,返回一个参数。可理解为初阶函数 f(x,y)
  • 定义:R apply(T t, U u)
  • 默认方法:BiFunction<T, U, V> andThen(Function<? super R, ? extends V> after)

BinaryOperator<T> extends BiFunction<T,T,T> (同类型双参操作)

  • 功能:接收两个同类型参数,返回一个同类型参数。
  • 定义:T apply(T t1, T t2)
  • 默认方法:
  1. BinaryOperator<T> minBy(Comparator<? super T> comparator)
  2. BinaryOperator<T> maxBy(Comparator<? super T> comparator)

Predicate<T> (断言)

  • 功能:接收一个参数,返回一个布尔值。
  • 定义:boolean test(T t)
  • 默认方法:
  1. Predicate<T> and(Predicate<? super T> other)
  2. Predicate<T> or(Predicate<? super T> other)
  3. Predicate<T> negate()
  4. Predicate<T> isEqual(Object targetRef)

JDK 8中重要的函数式接口(必知必会)的更多相关文章

  1. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

  2. 第4节:Java基础 - 必知必会(中)

    第4节:Java基础 - 必知必会(中) 本小节是Java基础篇章的第二小节,主要讲述抽象类与接口的区别,注解以及反射等知识点. 一.抽象类和接口有什么区别 抽象类和接口的主要区别可以总结如下: 抽象 ...

  3. 第3节:Java基础 - 必知必会(上)

    第3节:Java基础 - 必知必会(上) 本篇是基础篇的第一小节,我们从最基础的java知识点开始学习.本节涉及的知识点包括面向对象的三大特征:封装,继承和多态,并且对常见且容易混淆的重要概念覆盖和重 ...

  4. 必知必会之Java注解

    必知必会之Java注解 目录 不定期更新中-- 元注解 @Documented @Indexed @Retention @Target 常用注解 @Deprecated @FunctionalInte ...

  5. Java面试必知必会:基础

    面试考察的知识点多而杂,要完全掌握需要花费大量的时间和精力.但是面试中经常被问到的知识点却没有多少,你完全可以用 20% 的时间去掌握 80% 常问的知识点. 一.基础 包括: 杂七杂八 面向对象 数 ...

  6. Visual Studio 使用及调试必知必会

    原文:Visual Studio 使用及调试必知必会   一:C# CODING 技巧 1:TODO 然后 CTRL + W + T,打开任务列表,选中 Comments,就会显示所有待做的任务 2: ...

  7. Android必知必会-使用okhttp的PUT方式上传文件

    注:如果移动端排版有问题,请看 简书版 (<-点击左边),希望CSDN能更好的支持移动端. 背景 公司的文件上传接口使用PUT协议,之前一直用的都是老项目中的上传类,现在项目中使用了okhttp ...

  8. 关于TCP/IP,必知必会的十个经典问题[转]

    关于TCP/IP,必知必会的十个问题 原创 2018-01-25 Ruheng 技术特工队   本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养. 一 ...

  9. 迈向高阶:优秀Android程序员必知必会的网络基础

    1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...

随机推荐

  1. Redis详解(三)——

    redis https://www.cnblogs.com/zhangyinhua/p/14504717.html

  2. Python - 3.8 新特性之仅位置参数 & 仅关键字参数

    前置知识 Python 函数:https://www.cnblogs.com/poloyy/p/15092393.html 什么是仅限位置形参 仅限位置形参是 Python 3.8 才有的新特性 新增 ...

  3. WEB漏洞——文件上传

    有关文件上传的知识 为什么文件上传存在漏洞 上传文件时,如果服务端代码未对客户端上传的文件进行严格的验证和过滤就容易造成可以上传任意文件的情況,包括上传脚本文件(asp.aspx.php.jsp等格式 ...

  4. POJ1426——Find The Multiple

    POJ1426--Find The Multiple Description Given a positive integer n, write a program to find out a non ...

  5. 1.26学习总结——css盒子模型

    CSS 盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周围的H ...

  6. Django学习day03随堂笔记

    每日测验 """ 今日考题 1.什么是静态文件,django静态文件配置如何配置,如何解决接口前缀不断变化,html页面上路径的引用需要反复修改的问题 2.request ...

  7. PHP多文件上传格式化

    文件上传是所有web应用中最常见的功能,而PHP实现这一功能也非常的简单,只需要前端设置表单的 enctype 值为 multipart/form-data 之后,我们就可以通过 $_FILES 获得 ...

  8. js不记录某个url链接历史访问,返回时不返回该链接

    (function(){ var fnUrlReplace = function (eleLink) { if (!eleLink) { return; } var href = eleLink.hr ...

  9. SQL连接查询的执行顺序?

    sql和mysql执行顺序,发现内部机制是一样的.最大区别是在别名的引用上. 一.sql执行顺序 (1)from (2)on (3)join (4)where (5)group by(开始使用sele ...

  10. 接口测试-Mock测试方法

    接口测试-Mock测试方法一.关于Mock测试1.什么是Mock测试?Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造 ...