bi是binary的简写,二元的,表示两个参数

unary,一元的,表示一个参数

1.函数式接口Supplier  T get(),不接收参数,有返回值

IntSupplier,int getAsInt(),不接收参数,返回一个int型结果

LongSupplier,long getAsLong(),不接收参数,返回一个long型结果

DoubleSupplier,double getAsDouble(),不接收参数,返回一个double型结果

2.函数式接口Consumer  void accept(T t),接受一个参数,不返回

IntConsumer,void accept(int value),接收一个int型参数,不返回值

LongConsumer,void accept(long value),接收一个long型参数,不返回值

DoubleConsumer,void accept(double value),接收一个double型参数,不返回

3.函数式接口Function  R apply(T t),接收一个参数,有返回值

IntFunction,R apply(int value),接收一个int型参数,有返回值

ToIntFunction,int applyAsInt(T value),接收一个参数,返回一个int型结果

LongFunction,R apply(long value),接收一个long型参数,有返回值

ToLongFunction,long applyAsLong(T value),接收一个参数,返回一个long型结果

DoubleFunction,R apply(double value),接收一个double型参数,有返回值

ToDoubleFunction,double applyAsDouble(T value),接收一个参数,返回一个double型结果

4.函数式接口UnaryOperator,是Function的子接口。接收一个参数,有返回值,且返回值的类型与参数类型一样

IntUnaryOperator,int applyAsInt(int operand),接收一个int型参数,返回一个int型结果

LongUnaryOperator,long applyAsLong(long operand),接收一个long型参数,返回一个long型结果

DoubleUnaryOperator,double applyAsDouble(double operand),接收一个double型参数,返回一个double型结果

5.函数式接口BiConsumer  void accept(T t, U u),接收两个参数,不返回

6.函数式接口BiFunction  R apply(T t, U u),接收两个参数,有返回值

ToIntBiFunction,int applyAsInt(T t, U u),接收两个参数,返回一个int型结果

ToLongBiFunction,long applyAsLong(T t, U u),接收两个参数,返回一个long型结果

ToDoubleBiFunction,double applyAsDouble(T t, U u),接收两个参数,返回一个double型结果

7.函数式接口BinaryOperator,是BiFunction的子接口。接收两个参数,有返回值,且两个参数和返回值的类型都一样

IntBinaryOperator,int applyAsInt(int left, int right),接收两个int型参数,返回一个int型结果

LongBinaryOperator,long applyAsLong(long left, long right),接收两个long型参数,返回一个long型结果

DoubleBinaryOperator,double applyAsDouble(double left, double right),接收两个double型参数,返回一个double型结果

8.函数式接口Predicate  boolean test(T t),接收一个参数,返回true或者false

9.接口Stream、IntStream、LongStream、DoubleStream

接口Stream

static Stream<T> of(T... values),入参是多个同一种类型的值或者数组,返回一个Stream对象

static Stream generate(Supplier s),生成一个无穷的、无序的Stream对象

static Stream iterate(T seed, UnaryOperator<T> f),生成一个无穷的、有序的Stream对象,生成规则就好像迭代函数一样,seed是第一个元素,第二个元素是传seed进去生成的结果,第三个元素是传第二个元素进去生成的结果。。。以此类推

Stream distinct(),返回一个新的去重后的Stream对象

Stream sorted(Comparator comparator),入参是一个排序器,返回一个排好序的Stream对象

Stream map(Function mapper),入参是一个Function对象,返回一个新的Stream对象

Stream flatMap(Function mapper),和map()方法的不同需要再分析

Stream skip(long n),返回一个出去前n个元素之后的Stream对象

Stream limit(long maxSize),返回一个最多包含maxSize个元素的新的Stream对象

Stream filter(Predicate predicate),返回一个过滤后的新的Stream对象

IntStream mapToInt(ToIntFunction mapper),把一个Stream对象转换成一个IntStream对象

Optional findFirst(),返回包含第一个元素的Optional对象

long count(),返回Stream对象包含的元素的个数

Object[] toArray(),返回一个数组,可转换至具体类型的数组

void forEach(Consumer action),传入一个Consumer对象

Optional max(Comparator comparator),返回Stream对象包含的最大的元素,怎么算大,由传入的Comparator对象决定

collect(Collector collector),传入一个Collector对象,Collector对象可以调用Collectors的各种静态方法生成,如toList(),toCollection(Supplier collectionFactory),toSet(),reducing()的三个重载、joining()的三个重载、groupingBy()的三个重载等等,还有好多使用的方法

接口IntStream

static IntStream range(int startInclusive, int endExclusive),返回一个IntStream对象,元素包含第一个参数,不包含第二个参数

static IntStream rangeClosed(int startInclusive, int endInclusive),返回一个IntStream对象,两边都包含

IntSummaryStatistics summaryStatistics(),返回一个IntSummaryStatistics对象,进而可以得到最大值、最小值这些。

int sum(),求和

reduce()方法,有2个重载

第1个重载,OptionalInt reduce(IntBinaryOperator op),入参是个IntBinaryOperator对象,返回一个OptionalInt对象

第2个重载,int reduce(int identity, IntBinaryOperator op),第一个参数是个int值,第二个参数是个IntBinaryOperator对象,返回一个int型结果

10.final类Optional、OptionalInt

Optional

T get(),如果值存在,返回原值,否则抛出NoSuchElementException异常

T orElse(T other),如果值存在,返回原值,否则返回传入的值

void ifPresent(Consumer consumer),如果值存在的话,就处理,否则什么都不做。

OptionalInt

int getAsInt(),如果值存在,返回原值,否则抛出NoSuchElementException异常

int orElse(int other),如果值存在,返回原值,否则返回传入的值

void ifPresent(IntConsumer consumer),如果值存在的话,就处理,否则什么都不做。

11.IntSummaryStatistics,IntConsumer的实现类

LongSummaryStatistics,LongConsumer的实现类

DoubleSummaryStatistics,DoubleConsumer的实现类

用于汇总统计的类,通过调用getMin()、getMax()、getAverage()、getCount()、getSum()实例方法获取最小值、最大值、平均值、个数、求和。

jdk8涉及到的接口、类及方法的更多相关文章

  1. .Net WebApi接口之Swagger UI 隐藏指定接口类或方法

    swagger的一个最大的优点是能实时同步api与文档,但有些时候我们不想全部公开接口,而要隐藏或屏蔽一些接口类或方法,swagger也是支持的,只需要设置一下DocumentFilter方法. 第一 ...

  2. java基础2.-------interface接口类,实现接口

    1.为什么使用接口,是把功能方法都写在一个类中,在其他需要调用的时候,通过implements实现该接口 2.接口可以继承多个父类接口,在实现接口的时候,实现类实现所有方法 3.在接口类写方法时,自动 ...

  3. 类,抽象基类,接口类三者间的区别与联系(C++)

    结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) http://www.cnblogs.com/Tris-wu/p ...

  4. php 抽象类和接口类

    PHP中抽象类和接口类都是特殊类,通常配合面向对象的多态性一起使用. 相同: ①两者都是抽象类,都不能实例化. ②只有接口类的实现类和抽象类的子类实现了 已经声明的 抽象方法才能被实例化. 不同: ① ...

  5. C++:如何正确的定义一个接口类

    C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...

  6. 抽象类,接口类,封装,property,classmetod,statimethod

    抽象类,接口类,封装,property,classmetod,statimethod(类方法,静态方法) 一丶抽象类和接口类 接口类(不崇尚用) 接口类:是规范子类的一个模板,只要接口类中定义的,就应 ...

  7. python day - 19 抽象类 接口类 多态 封装

    一. 抽象类接口类即制定一个规范 特点: 1.不可被实例化. 2.规范子类当中必须事先某个方法. 3.在python中有原生实现抽象类的方法,但没有原生实现接口类的方法. 例题:制定一个规范就是,子类 ...

  8. IntelliJ IDEA 接口类跳转到实现类及实现类跳转到接口

    接口和实现类的互相跳转是使用IntelliJ IDEA过程中常用的操作,在此记录一下: 1.Service接口跳转到实现类 操作:在接口类的方法上使用快捷键Ctrl+Alt+B,或者点击下图所示位置 ...

  9. java接口类

    是什么:类似于java中的继承,但是继承只可以继承一个人父类,接口类可以继承多个 作用:解决java继承解决不了的问题 关键字:interface(定义) implements(使用) 注意事项:1. ...

随机推荐

  1. 编写高质量代码改善C#程序的157个建议——建议61:避免在finally内撰写无效代码

    建议61:避免在finally内撰写无效代码 在阐述建议之前,需要先提出一个问题:是否存在一种打破try-finally执行顺序的情况,答案是:不存在(除非应用程序本身因为某些很少出现的特殊情况在tr ...

  2. 编写高质量代码改善C#程序的157个建议——建议46:显式释放资源需继承接口IDisposable

    建议46:显式释放资源需继承接口IDisposable C#中的每一个类型都代表一种资源,资源分为两类: 托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象. 非托管资源:不受CLR ...

  3. 再解炸弹人——BFS

    原创 之前用了枚举法解炸弹人,题目详情请看我之前的博客:https://www.cnblogs.com/chiweiming/p/9295262.html 利用枚举法是无视地图布局的,枚举法直接全局搜 ...

  4. JAVA读取控制台的输入【转】

    前面介绍了使用IO类实现文件读写的示例,其实在很多地方还需要使用到IO类,这里再以读取控制台输入为例子来介绍IO类的使用. 控制台(Console)指无图形界面的程序,运行时显示或输入数据的位置,前面 ...

  5. Arduino ADC + 模拟温度传感器LM35D

    LM35是美国国家半导体(后被TI收购)推出的精密温度传感IC系列,其信号输出方式为模拟输出,输出电压值与摄氏温度值呈正比,且用户不需额外的校正就能获得较高的测量精度.其主要特性有: 供电电压:4~3 ...

  6. vs2015编译ffmpeg 出现错误rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 ___iob_func

    vs2015编译ffmpeg(版本3.0.2)引用外部库文件librtmp出现以下错误: rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 __imp__st ...

  7. Windows实用功能

    查看程序crash日志:"Computer Management"-"System Tools"-"Event Viewer"-" ...

  8. Spark JavaRDD、JavaPairRDD、Dataset之间的相互转换

    主要内容: 1. JavaRDD to JavaPairRDD 2. Dataset to JavaPairRDD 3. JavaPairRDD to JavaRDD 4. JavaRDD to Da ...

  9. .Generator与其他异步处理方案

    1.Generator与其他异步处理方案 以前,异步编程的方法,大概有下面四种. 1.1 回调函数 JavaScript 语言对异步编程的实现,就是回调函数.所谓回调函数,就是把任务的第二段单独写在一 ...

  10. python参数传递:对象的引用

    大家都知道在python中,一切皆对象,变量也不再具有类型,变量仅仅是对象的一个引用,我们通常用变量来测类型,通常测得就是被这个变量引用得对象的类型. python采用的是传递对象的引用,为了方便说明 ...