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)

最新文章

  1. [No00009E]几种常见的命名规则
  2. Window Server 2012 R2 没有照片查看器 打开图片都是画板问题怎么解决
  3. mysql 之基本操作
  4. 善用VS中的Code Snippet来提高开发效率
  5. G面经prepare: BuyGoods
  6. Winform 窗口拖动
  7. 四、XML映射配置文件
  8. &lt;php&gt;文件操作*(重要)
  9. 【转】对memcached使用的总结和使用场景
  10. 移植Linux-3.4.2内核到S3C2440
  11. MyBatis:自定义Mapper
  12. windowsserver2016系统性能和功能对比介绍
  13. Spring 中StopWatch用法
  14. SQL-48 将所有获取奖金的员工当前的薪水增加10%。
  15. funny故事
  16. openssl - 怎么打开POD格式的帮助文件
  17. ChromeExtension入门浅谈
  18. 【Devops】【docker】【CI/CD】1.docker搭建Gitlab环境
  19. Hadoop序列化机制及实例
  20. 【UVA】11825 Hackers&#39; Crackdown(状压dp)

热门文章

  1. 【odoo】【知识杂谈】单一实例多库模式下定时任务的问题分析
  2. Insights直播预告 | 多媒体管线服务,助您轻松进入“技术流”创新阵地
  3. Appium问题解决方案(5)- selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy &#39;name&#39; is not supported for this session
  4. Jenkins持续集成接口压测
  5. IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包
  6. ysoserial exploit/JRMPClient
  7. io流-缓冲流
  8. 第25篇-虚拟机对象操作指令之putstatic
  9. PTA——c++基本输入输出
  10. 【PHP数据结构】交换排序:冒泡、快排