java 8 foreach_Java 8 forEach Stream()与旧版forEach循环
我正在嘗試使用Spring的示例代碼.部分代碼如下所示;
private List points;
long timeTakeninMilis = System.currentTimeMillis();
public List getPoints() {
return points;
}
public void setPoints(List points) {
this.points = points;
}
public void drawJava8() {
points.stream().forEachOrdered(
point -> System.out.println("Point : (" + point.getX() + ", "
+ point.getY() + ")"));
System.out.println("Total Time Taken drawJava8(): "
+ (System.currentTimeMillis() - timeTakeninMilis)
+ " miliseconds");
}
public void draw() {
for (Point point : points) {
System.out.println("Point = (" + point.getX() + ", " + point.getY()
+ " )");
}
System.out.println("Total Time Taken draw(): "
+ (System.currentTimeMillis() - timeTakeninMilis)
+ " miliseconds");
}
輸出,
Jun 30, 2015 11:30:53 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@7daf6ecc: startup date [Tue Jun 30 11:30:53 IST 2015]; root of context hierarchy
Jun 30, 2015 11:30:53 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [spring.xml]
Point = (0, 0 )
Point = (-50, 0 )
Point = (0, 50 )
Total Time Taken draw(): 70 miliseconds
Point : (0, 0)
Point : (-50, 0)
Point : (0, 50)
Total Time Taken drawJava8(): 124 miliseconds
Jun 30, 2015 11:30:54 AM org.springframework.context.support.ClassPathXmlApplicationContext doClose
INFO: Closing org.springframework.context.support.ClassPathXmlApplicationContext@7daf6ecc: startup date [Tue Jun 30 11:30:53 IST 2015]; root of context hierarchy
為什么要花更多時(shí)間?
還是我做錯(cuò)了什么?
我期望它更快或更類(lèi)似的速度…
請(qǐng)幫助我了解Lambda表達(dá)式的好處是什么?
信息:我在兩個(gè)不同的程序中做到了.時(shí)間就是從那些.我在這里合并它們以簡(jiǎn)化它.
解決方法:
根據(jù)原始發(fā)帖人的請(qǐng)求將其添加為分析.
我們不能真正預(yù)測(cè)現(xiàn)代JIT編譯器對(duì)正在運(yùn)行的代碼執(zhí)行的復(fù)雜分析和轉(zhuǎn)換.因此,在對(duì)諸如此類(lèi)的項(xiàng)目進(jìn)行基準(zhǔn)測(cè)試時(shí),您不應(yīng)僅通過(guò)運(yùn)行兩個(gè)方法調(diào)用來(lái)得出結(jié)論.
相反,創(chuàng)建各種示例輸入集(邊界案例)并通過(guò)重復(fù)調(diào)用測(cè)試案例而不關(guān)閉JVM來(lái)檢查性能.例如,在這種情況下:
for (int i=0;i<100;i++){draw(); drawJava8();}
獲得結(jié)果后,找出平均執(zhí)行情況,就可以放心地忽略第一個(gè)執(zhí)行結(jié)果,因?yàn)樗赡軟](méi)有進(jìn)行優(yōu)化.
因此,您從測(cè)試中得出的結(jié)論并不完全正確.
標(biāo)簽:java-8,java-stream,foreach,spring,java
來(lái)源: https://codeday.me/bug/20191120/2041249.html
總結(jié)
以上是生活随笔為你收集整理的java 8 foreach_Java 8 forEach Stream()与旧版forEach循环的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oracle 怎么 制造崩溃,oracl
- 下一篇: iOS打开沙盒html,iOS WKWe