jdk8涉及到的接口、类及方法
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涉及到的接口、类及方法的更多相关文章
- .Net WebApi接口之Swagger UI 隐藏指定接口类或方法
swagger的一个最大的优点是能实时同步api与文档,但有些时候我们不想全部公开接口,而要隐藏或屏蔽一些接口类或方法,swagger也是支持的,只需要设置一下DocumentFilter方法. 第一 ...
- java基础2.-------interface接口类,实现接口
1.为什么使用接口,是把功能方法都写在一个类中,在其他需要调用的时候,通过implements实现该接口 2.接口可以继承多个父类接口,在实现接口的时候,实现类实现所有方法 3.在接口类写方法时,自动 ...
- 类,抽象基类,接口类三者间的区别与联系(C++)
结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) http://www.cnblogs.com/Tris-wu/p ...
- php 抽象类和接口类
PHP中抽象类和接口类都是特殊类,通常配合面向对象的多态性一起使用. 相同: ①两者都是抽象类,都不能实例化. ②只有接口类的实现类和抽象类的子类实现了 已经声明的 抽象方法才能被实例化. 不同: ① ...
- C++:如何正确的定义一个接口类
C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...
- 抽象类,接口类,封装,property,classmetod,statimethod
抽象类,接口类,封装,property,classmetod,statimethod(类方法,静态方法) 一丶抽象类和接口类 接口类(不崇尚用) 接口类:是规范子类的一个模板,只要接口类中定义的,就应 ...
- python day - 19 抽象类 接口类 多态 封装
一. 抽象类接口类即制定一个规范 特点: 1.不可被实例化. 2.规范子类当中必须事先某个方法. 3.在python中有原生实现抽象类的方法,但没有原生实现接口类的方法. 例题:制定一个规范就是,子类 ...
- IntelliJ IDEA 接口类跳转到实现类及实现类跳转到接口
接口和实现类的互相跳转是使用IntelliJ IDEA过程中常用的操作,在此记录一下: 1.Service接口跳转到实现类 操作:在接口类的方法上使用快捷键Ctrl+Alt+B,或者点击下图所示位置 ...
- java接口类
是什么:类似于java中的继承,但是继承只可以继承一个人父类,接口类可以继承多个 作用:解决java继承解决不了的问题 关键字:interface(定义) implements(使用) 注意事项:1. ...
随机推荐
- 函数有一个特殊的属性 prototype!
JavaScript 中只有对象,没有类. 实际上,JavaScript 才是真正应该被称为「面向对象」的语言,因为它是少有的可以不通过类,直接创建对象的语言. 函数的 prototype 属性 在 ...
- 设计模式06: Adapter 适配器模式(结构型模式)
Adapter 适配器模式(结构型模式) 适配(转换)的概念无处不在:电源转接头.电源适配器.水管转接头... 动机(Motivation)在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象 ...
- 获取下标实现导航切换jquery代码
var lis = $(".proDetail_contentnav li");for(var i = 0; i < lis.length; i++) { lis[i].in ...
- SharePoint Server 2013 Excel Web Access无法显示
环境信息:SharePoint Server 2013 中文版,版本为15.0.4420.1017 Windows Server 2008 r2中文版 Sql Server 2012 问题描述:在Sh ...
- It企业的上市与退市
目前我国的it上市公司有同方股份.华胜天成.长城电脑.航天信息.用友软件.中国软件.东软集团.长电科技.华东科技.航天长峰.航天科技.士兰微.上海贝岭等等. 一般来讲公司上市是为了融资,一是为了解决资 ...
- .net core 结合nlog使用Elasticsearch , Logstash, Kibana
什么是ELK ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一个FileBeat,它是一个轻量级的日志收集处理工具 ...
- Weekly Contest 118
970. Powerful Integers Given two non-negative integers x and y, an integer is powerful if it is equa ...
- loj #6121. 「网络流 24 题」孤岛营救问题
#6121. 「网络流 24 题」孤岛营救问题 题目描述 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂, ...
- The server of Nginx(一)——Nginx基础及静态网站的构建
一.Nginx介绍 火了半边天的Nginx和Apache一样也是Web服务器,专为性能优化而开发,也可以像Squid一样做反向代理,或者邮件代理等许多用途,并有windows的移植版,其最知名的优点是 ...
- 华为敏捷DevOps实践:产品经理如何开好敏捷回顾会议
大家好,我是华为云DevCloud项目管理服务的产品经理 恒少:) 作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流.布道.技术沙龙,但是线下交流,覆盖的用户总还是少数.我希望借助 ...