lambda表达式 java 效率_Java8新特性效率之Lambda
1.我的環境如下:
CPU:I5-2430M 2.4GHz 雙核四線程
內存:8G
JDK版本:1.8.0_25
2.生成數據的核心代碼
一個Student類,只有一個age屬性,一個方法,是根據參數生成一定數量的數據
public?static?List?getStudent(long?count)
{
List?lists?=?new?ArrayList<>();
for(long?i?=?1;?i<=?count;i++)
lists.add(new?Student((int)(Math.random()?*?100)));
return?lists;
}
3.測試代碼
/**?匿名內部類測試?*/
public?static?void?Filter1(List?lists)
{
long?start?=?System.currentTimeMillis();
Stream?man1?=?lists.stream().filter(
new?Predicate()
{
public?boolean?test(Student?student)
{
return(student.getAge()?>=?18);
}
});
long?end?=?System.currentTimeMillis();
System.out.println(end?-?start);
}
/**?lambda測試?*/
public?static?void?Filter2(List?lists)
{
long?start?=?System.currentTimeMillis();
Stream?man2?=?lists.stream().filter(student?->?{return?student.getAge()?>=?18;});
long?end?=?System.currentTimeMillis();
System.out.println(end?-?start);
}
public?static?void?main(String[]?args)
{
List?lists?=?DataDao.getStudent(1000000);
System.out.println("數據生成完畢!");
//每次開啟一個,保證運行情況盡量一致
//Filter1(lists);
Filter2(lists);
}
4.我的測試結果如下:
從測試結果可以得出,Lambda還是比較耗時的
5.案例存在的問題
每次都是生成數據,每個測試方法數據不完全一樣,所以每次運行3次,進行參考
6.結論
Java8有了Lambda之后,確實挺方便的,但是運行效率并沒有原來匿名內部類的效率高,所以在要求效率不高,但是代碼美觀的時候,建議使用Lambda,在要求高效率的時候,可以考慮使用原來匿名內部類,
我相信Java的Lambda語法會越來越完善的,效率也會提高的!
由于我的水平有限,如果有什么問題或者有更好的測試方法,歡迎大家留言!
總結
以上是生活随笔為你收集整理的lambda表达式 java 效率_Java8新特性效率之Lambda的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ustc小道消息20220112
- 下一篇: 微信支付 php详解,PHP实现微信支付