2016 - 2025

感恩一路有你

lambda表达式最全解析 jdk1.8新特性方法引用?

浏览量:2393 时间:2023-04-10 17:29:37 作者:采采

jdk1.8新特性方法引用?

1.

方法引用:如果Lambda体中的内容已经实现,我们可以使用方法引用(可以理解为Lambda表达式的另一种形式)主要有三种语法格式::对象::实例方法名类::静态方法名类::实例方法名注意,:体中调用方法的参数列表和返回值类型要与函数接口中抽象方法的函数列表和返回值类型一致。

2.

如果Lambda参数列表中的第一个参数是实例方法的调用方,第二个参数是实例方法的参数,那么可以使用类名::方法@测试//对象::实例方法名。

java8 stream和foreach哪个效率高?

1.问题的描述

java8 stream和foreach哪个效率更高?

问题结论

超过150W数据:streamgtparalleStreamgtsimple

150W条数据如下:simplegtstreamgtparalleStream

从性能上看:普通的forEach可以用于少量的数据,不需要在java8中使用几个新的,也不需要改变项目中已经使用的东西,10W的差距只有几毫秒。

2.测试案例

进口

进口

ForEachMain的公共类{

公共静态void main(String[] args) {

//实例化arrayList

listlintegergt arrayList new ArrayListltIntegergt()

整数15000000

//插入10万条数据

for (int i 0 i lt num i ) {

}

listlintegergt RES new ArrayListltgt()

()

//用foreach循环arrayList

long arrayForeachStartTim:数组里的整数st) {

(英寸)

}

long arrayForeachEndTime()

用foreach循环arrayList (num)次:(ArrayForeacheEndTime-ArrayForeacheStartTime)毫秒)

()

//使用stream-foreach循环arrayList

长数组流开始时间()

().forEach

长数组流结束时间()

使用Stream-foreach循环arrayList (num)次:(ArrayStreamEndTime-arraystreamstartime)毫秒)

()

//使用parallelStream-foreach循环arrayList

长数组并行流开始时间()

().forEach

长数组并行流结束时间()

(用parallelStream-foreach循环arrayList (num)需要一万次:

(数组并行流时间-数组并行流时间)毫秒)

}

}

2.1当编号为50000000时

使用foreach循环arrayList 50亿次需要2840毫秒。

用stream-foreach循环arrayList 5000万次:507毫秒。

用parallelStream循环arrayList 5000万次-foreach时间:1168毫秒。

2.2当num为500000时

使用foreach循环ArrayList 500,000次需要13毫秒。

用stream-foreach循环数组列表500,000次。时间:25毫秒。

用parallelStream循环ArrayList 500,000次-foreach时间:35毫秒。

2.3当编号为5000时

使用foreach循环arrayList 5000次需要时间:1毫秒。

用stream-foreach循环ArrayList,000次:16毫秒。

使用parallelStream-foreach循环数组列表00,000次:8毫秒

最直观的感受就是stream的流式处理应该更快。这个假设需要事实来证明。运行测试代码后,发现并非如此。听觉是空的,眼见为实,品尝李子最简单的方法就是品尝它们。记住,写代码的时候,一定要以简单为原则。毕竟运行程序的硬件成本会随着时间不断降低。

作者:Sunny sunset,欢迎关注我的头条:偶遇美文,主流Java,告诉你不一样的码农生活。

方法 时间 foreach 数据

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。