Atitit  java  func interface sumup

目录

1. 函数式接口 1

1.1.1. 什么是函数式接口? 1

1.2.  Function, Supplier, Consumer, Predicate的区别于应用场合 2

1.3. 他们之间的层级关系这样Function,Function.Supplier    ,Function.Consumer  ,Function.Supplier.Predicate   3

1.4. JDK 1.8之前已有的函数式接口: 3

1.5.     Lambda表达式如何在java类型中表示的呢? 3

2. JDK 1.8 新增加的函数接口: java.util.function 4

3. 3. 函数式接口 2 3.1.2. Java8中常用的全新的接口 3 7

3.1. 3.2. Predicate接口 3 8

3.2. 3.3. Function 接口 4 8

3.3. Supplier 接口 4 8

3.4. Consumer 接口 5 8

3.5. Comparator 接口 5 8

3.6. 3.4. Optional 接口 6 8

3.7. 3.5. Stream 接口 7 8

3.7.1. 3.6.  Filter 过滤 8 8

3.7.2. 3.7. Sort 排序 8 8

3.7.3. Map 映射 9 8

3.7.4. 3.8. Match 匹配 10 8

3.7.5. Count 计数 12 8

3.7.6. 3.9. Reduce 规约 12 8

3.7.7. 3.10. 并行Streams 13 8

3.7.8. 3.11. Map 15 8

4. Ref 8

4.1. Java 8 函数式接口 _ 菜鸟教程.html 8

1. 函数式接口

1.1.1. 什么是函数式接口?

  函数式接口,@FunctionalInterface,简称FI,简单的说,FI就是指仅含有一个抽象方法的接口,以@Functionalnterface标注,注意⚠️,这里的抽象方法指的是该接口自己特有的抽象方法,而不包含它从其上级继承过来的抽象方法,例如:

@FunctionalInterface

Interface FI{

abstract judge(int a);

abstract equals();

}

上一篇我们学习了Function和BiFunction函数式接口,本篇继续了解下其他常用的函数式接口。
先来看下Predicate
Predicate函数式接口的主要作用就是提供一个test方法,接受一个参数返回一个布尔类型,Predicate在stream api中进行一些判断的时候非常常用。

函数式接口(functional interface 也叫功能性接口,其实是同一个东西)。简单来说,函数式接口是只包含一个方法的接口

1.1.  Function, Supplier, Consumer, Predicate的区别于应用场合

* JDK8新特性☞Supplier接口测试:该接口返回一个任意泛型的值,和Function接口不同的是该接口没有任何参数
 * Consumer接口:表示执行在单个参数上的操作 Compartor接口:

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。

函数式接口可以被隐式转换为lambda表达式。

函数式接口可以现有的函数友好地支持 lambda。

Function写法应该是这样的: (x) -> {return y;}

:Supplier   () -> { return something; },

Consumer  (x) -> {}

Predicate  (x) -> ret TRUE  。。和Supplier   的区别是返回bool用来做判断很有用

原则上Function可以运用于所有场合,因为有输入有输出,但较为繁琐。 其他三个都是他的细化模型,写起来简单

1.2. 他们之间的层级关系这样Function,Function.Supplier    ,Function.Consumer  ,Function.Supplier.Predicate

Toml表达法

1.3. JDK 1.8之前已有的函数式接口:

· java.lang.Runnable

· java.util.concurrent.Callable

· java.security.PrivilegedAction

· java.util.Comparator

· java.io.FileFilter

· java.nio.file.PathMatcher

· java.lang.reflect.InvocationHandler

· java.beans.PropertyChangeListener

· java.awt.event.ActionListener

· javax.swing.event.ChangeListener

JDK 1.8 新增加的函数接口:

· java.util.function

1.4.     Lambda表达式如何在java类型中表示的呢?

语言设计者投入了大量的精力来思考如何使现有的函数友好地支持lambda。最终采取的办法是:增加函数式接口的概念,函数式接口接口就是具有一个方法的普通接口。像这样的

接口可以被隐式的转换为Lambda表达式!!!

2. JDK 1.8 新增加的函数接口: java.util.function

java.util.function 它包含了很多类,用来支持 Java的 函数式编程,该包中的函数式接口有:

序号

接口 & 描述

1

BiConsumer<T,U>

代表了一个接受两个输入参数的操作,并且不返回任何结果

2

BiFunction<T,U,R>

代表了一个接受两个输入参数的方法,并且返回一个结果

3

BinaryOperator<T>

代表了一个作用于于两个同类型操作符的操作,并且返回了操作符同类型的结果

4

BiPredicate<T,U>

代表了一个两个参数的boolean值方法

5

BooleanSupplier

代表了boolean值结果的提供方

6

Consumer<T>

代表了接受一个输入参数并且无返回的操作

7

DoubleBinaryOperator

代表了作用于两个double值操作符的操作,并且返回了一个double值的结果。

8

DoubleConsumer

代表一个接受double值参数的操作,并且不返回结果。

9

DoubleFunction<R>

代表接受一个double值参数的方法,并且返回结果

10

DoublePredicate

代表一个拥有double值参数的boolean值方法

11

DoubleSupplier

代表一个double值结构的提供方

12

DoubleToIntFunction

接受一个double类型输入,返回一个int类型结果。

13

DoubleToLongFunction

接受一个double类型输入,返回一个long类型结果

14

DoubleUnaryOperator

接受一个参数同为类型double,返回值类型也为double 。

15

Function<T,R>

接受一个输入参数,返回一个结果。

16

IntBinaryOperator

接受两个参数同为类型int,返回值类型也为int 。

17

IntConsumer

接受一个int类型的输入参数,无返回值 。

18

IntFunction<R>

接受一个int类型输入参数,返回一个结果 。

19

IntPredicate

:接受一个int输入参数,返回一个布尔值的结果。

20

IntSupplier

无参数,返回一个int类型结果。

21

IntToDoubleFunction

接受一个int类型输入,返回一个double类型结果 。

22

IntToLongFunction

接受一个int类型输入,返回一个long类型结果。

23

IntUnaryOperator

接受一个参数同为类型int,返回值类型也为int 。

24

LongBinaryOperator

接受两个参数同为类型long,返回值类型也为long。

25

LongConsumer

接受一个long类型的输入参数,无返回值。

26

LongFunction<R>

接受一个long类型输入参数,返回一个结果。

27

LongPredicate

R接受一个long输入参数,返回一个布尔值类型结果。

28

LongSupplier

无参数,返回一个结果long类型的值。

29

LongToDoubleFunction

接受一个long类型输入,返回一个double类型结果。

30

LongToIntFunction

接受一个long类型输入,返回一个int类型结果。

31

LongUnaryOperator

接受一个参数同为类型long,返回值类型也为long。

32

ObjDoubleConsumer<T>

接受一个object类型和一个double类型的输入参数,无返回值。

33

ObjIntConsumer<T>

接受一个object类型和一个int类型的输入参数,无返回值。

34

ObjLongConsumer<T>

接受一个object类型和一个long类型的输入参数,无返回值。

35

Predicate<T>

接受一个输入参数,返回一个布尔值结果。

36

Supplier<T>

无参数,返回一个结果。

37

ToDoubleBiFunction<T,U>

接受两个输入参数,返回一个double类型结果

38

ToDoubleFunction<T>

接受一个输入参数,返回一个double类型结果

39

ToIntBiFunction<T,U>

接受两个输入参数,返回一个int类型结果。

40

ToIntFunction<T>

接受一个输入参数,返回一个int类型结果。

41

ToLongBiFunction<T,U>

接受两个输入参数,返回一个long类型结果。

42

ToLongFunction<T>

接受一个输入参数,返回一个long类型结果。

43

UnaryOperator<T>

接受一个参数为类型T,返回值类型也为T。

3. 3. 函数式接口 2 3.1.2. Java8中常用的全新的接口 3

3.1. 3.2. Predicate接口 3

3.2. 3.3. Function 接口 4

3.3. Supplier 接口 4

3.4. Consumer 接口 5

3.5. Comparator 接口 5

3.6. 3.4. Optional 接口 6

3.7. 3.5. Stream 接口 7

3.7.1. 3.6.  Filter 过滤 8

3.7.2. 3.7. Sort 排序 8

3.7.3. Map 映射 9

3.7.4. 3.8. Match 匹配 10

3.7.5. Count 计数 12

3.7.6. 3.9. Reduce 规约 12

3.7.7. 3.10. 并行Streams 13

3.7.8. 3.11. Map 15

4. Ref

4.1. Java 8 函数式接口 _ 菜鸟教程.html

Java 8中一些常用的全新的函数式接口 - 001010 - 博客园.html

Java8的四大核心函数式接口 - CSDN博客.html

Atitit java func interface sumup 目录 1. 函数式接口 1 1.1.1. 什么是函数式接口? 1 1.2.  Function, Supplier, Cons相关推荐

  1. Java 8 - 03 Lambda 函数式接口Predicate Consumer Function Supplier

    文章目录 Pre Predicate 断言型函数式接口 Consumer 消费型函数式接口 Function 功能型函数式接口 Supplier 供给型函数式接口 小结 函数式接口如何处理异常信息 P ...

  2. Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27

    Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27 1. Jna简单介绍1 2. Jna范例halo owrld1 3. Jna概念2 3.1. (1)需 ...

  3. Atitit JAVA p2p设计与总结  JXTA 2

    Atitit JAVA p2p设计与总结  JXTA 2 JXTA 2 是开放源代码 P2P 网络的第二个主要版本,它利用流行的.基于 Java 的参考实现作为构建基础.在设计方面进行了重要的修改,以 ...

  4. Atitit.java c#这类编程语言的设计失败点attilax总结

    Atitit.java c#这类编程语言的设计失败点attilax总结 1. Npe1 2. Api粒度过小而又没有提供最常用模式1 3. checked exception(jeig n jyejy ...

  5. 【转】JNI(Java Native Interface)的简介

    因为刚刚接触android和java平台,对JNI到底是什么,还不是很了解,所以从CSDN转载了一篇文章,以便自己对JNI有一个认识,也跟大家分享一下. JNI是Java Native Interfa ...

  6. Android JNI(Java Native Interface)技术介绍

    Android平台上的JNI技术介绍 JUL 15TH, 2013 | COMMENTS NDK简介 Android是由Google领导开发的操作系统,Android依靠其开放性,迅速普及,成为目前最 ...

  7. java lambda函数_Java SE 8新功能介绍:使用Lambda Expression进行函数式编程

    java lambda函数 " Java SE 8新功能浏览 "系列的这篇文章将深入了解Lambda表达式 . 我将向您展示Lambda表达式的几种不同用法. 它们都具有功能接口的 ...

  8. java学习之路目录(已完结)

    java学习之路目录(持续更新中-) 第一阶段 javaSE(完结) 序号 标题 内容 001 java初识 java语言特点.体系结构.运行机制 002 java SE基础语法 注释.关键字.变量. ...

  9. 尚硅谷 宋红康老师 Java视频全程课程目录

    尚硅谷 Java 语言全程课程目录, 尚硅谷 Java&大数据研究院 宋红康 B站视频链接 已看完,感谢宋红康老师! [视频很长,但看完你一定会收获很多] 30天课程目录 Java 编程基础部 ...

  10. JNI (Java Native Interface)是什么

    JNI是Java Native Interface的缩写.从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代 ...

最新文章

  1. J2EE常用资源管理方式总结
  2. DataSet RecordSet 互转
  3. Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7--转
  4. 线性表算法题库_数据结构与算法(线性表)练习题
  5. 【概念】虚拟利润中心初识
  6. 各大视觉技术竞赛冠军及 TOP 方案集锦(持续更新)
  7. 微信开发者工具 出现 Error:unable to verify the first cert?
  8. Qt 第一步 HelloWorld 的第一个程序
  9. 生物大分子的计算机模拟就业,生物大分子模拟
  10. 查看mysql是否启用安全审计_如何查看oracle是否开启了审计功能?
  11. android多媒体图文混排,android图文混排
  12. C语言 百炼成钢16
  13. Python编曲实践(十):用Ableton Live 10手工扒的Grunge摇滚数据集,涵盖Grunge时期四大代表乐队的经典专辑
  14. protoc java out_protoc 命令参数
  15. 户籍化管理系统 c语言,社会单位消防安全“户籍化管理系统录入要点
  16. [licode cs交互] 1 android client 连接到token服务器
  17. 北京航天大学考研计算机科学与技术分数线,北京航空航天大学计算机科学与技术考研...
  18. 电力英语计算机C级多少分,中级工程师英语加权分多少
  19. 人大金仓(Kingbase)数据库迁移——使用大金仓数据库迁移工具进行迁移
  20. Qt 模型视图编程之表头设置

热门文章

  1. mysql的bht_BHT
  2. 经验分享 PDF如何旋转页面,替换页面
  3. 转css中文英文换行、禁止换行、显示省略号
  4. 使用WMI和性能计数器监控远程服务器权限设置
  5. Dictionary的遍历和修改
  6. HDU 12O3 I NEED A OFFER!
  7. oracle11g视频
  8. Python数据预处理之清及
  9. LeetCode 169 Majority Element 解题报告
  10. IO库----IO类,文件输入输出,string流