卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

在java中哪些是標(biāo)準(zhǔn)流 java8 stream和foreach哪個(gè)效率高?

java8 stream和foreach哪個(gè)效率高?1. 問(wèn)題描述java8 stream和foreach哪個(gè)效率高?問(wèn)題結(jié)論150W條數(shù)據(jù)以上:streamgtparalleStreamgtsimp

java8 stream和foreach哪個(gè)效率高?

1. 問(wèn)題描述

java8 stream和foreach哪個(gè)效率高?

問(wèn)題結(jié)論

150W條數(shù)據(jù)以上:streamgtparalleStreamgtsimple

150W條數(shù)據(jù)以下:simplegtstreamgtparalleStream

從性能上考慮:小數(shù)據(jù)量用普通的forEach就可以,沒(méi)有必要使用java8中的新出來(lái)的幾種,已經(jīng)在項(xiàng)目中使用的也不需要改回來(lái),10W條也就幾毫秒的差距。

2. 測(cè)試用例

import

import

public class ForEachMain {

public static void main(String[] args) {

// 實(shí)例化arrayList

ListltIntegergt arrayList new ArrayListltIntegergt()

int num 15000000

// 插入10萬(wàn)條數(shù)據(jù)

for (int i 0 i lt num i ) {

(i)

}

ListltIntegergt res new ArrayListltgt()

()

// 用foreach循環(huán)arrayList

long arrayForeachStartTime ()

for (Integer in : arrayList) {

(in)

}

long arrayForeachEndTime ()

(

用foreach循環(huán)arrayList (num) 次花費(fèi)時(shí)間: (arrayForeachEndTime - arrayForeachStartTime) 毫秒)

()

// 用stream-foreach循環(huán)arrayList

long arrayStreamStartTime ()

().forEach(e -gt (e))

long arrayStreamEndTime ()

(

用Stream-foreach循環(huán)arrayList (num) 次花費(fèi)時(shí)間: (arrayStreamEndTime - arrayStreamStartTime) 毫秒)

()

// 用parallelStream-foreach循環(huán)arrayList

long arrayParallelStreamStartTime ()

().forEach(e -gt (e))

long arrayParallelStreamEndTime ()

(用parallelStream-foreach循環(huán)arrayList (num) 萬(wàn)次花費(fèi)時(shí)間:

(arrayParallelStreamEndTime - arrayParallelStreamStartTime) 毫秒)

}

}

2.1 當(dāng)num 50000000時(shí)

用foreach循環(huán)arrayList 5000萬(wàn)次花費(fèi)時(shí)間:2840毫秒

用stream-foreach循環(huán)arrayList 5000萬(wàn)次花費(fèi)時(shí)間:507毫秒

用parallelStream-foreach循環(huán)arrayList 5000萬(wàn)次花費(fèi)時(shí)間:1168毫秒

2.2 當(dāng)num 500000時(shí)

用foreach循環(huán)arrayList 50萬(wàn)次花費(fèi)時(shí)間:13毫秒

用stream-foreach循環(huán)arrayList 50萬(wàn)次花費(fèi)時(shí)間:25毫秒

用parallelStream-foreach循環(huán)arrayList 50萬(wàn)次花費(fèi)時(shí)間:35毫秒

2.3 當(dāng)num 5000時(shí)

用foreach循環(huán)arrayList 5000次花費(fèi)時(shí)間:1毫秒

用stream-foreach循環(huán)arrayList 0萬(wàn)次花費(fèi)時(shí)間:16毫秒

用parallelStream-foreach循環(huán)arrayList 0萬(wàn)次花費(fèi)時(shí)間:8毫秒

最直觀的感覺(jué),stream的流式處理應(yīng)該比較快,這種想當(dāng)然的推測(cè),需要事實(shí)去佐證,運(yùn)行過(guò)測(cè)試代碼之后,發(fā)現(xiàn)并不是那么回事。耳聽(tīng)為虛,眼見(jiàn)為實(shí),李子是不是澀的,最簡(jiǎn)單的是嘗一口。請(qǐng)記住,編寫代碼時(shí),一定要以最簡(jiǎn)潔為原則,畢竟運(yùn)行程序的硬件成本會(huì)隨著時(shí)間的推移在不斷降低。

作者:夕陽(yáng)雨晴,歡迎關(guān)注我的頭條號(hào):偶爾美文,主流Java,為你講述不一樣的碼農(nóng)生活。

java中什么類需要序列化?

為了讀寫方便,比如把一個(gè)對(duì)象寫入文本中,必須進(jìn)行序列化。

java對(duì)象序列化不僅保留一個(gè)對(duì)象的數(shù)據(jù),而且遞歸保存對(duì)象引用的每個(gè)對(duì)象的數(shù)據(jù)??梢詫⒄麄€(gè)對(duì)象層次寫入字節(jié)流中,可以保存在文件中或在網(wǎng)絡(luò)連接上傳遞。利用對(duì)象序列化可以進(jìn)行對(duì)象的