馬老師java經(jīng)典實(shí)戰(zhàn)項(xiàng)目-坦克大戰(zhàn)
ct。
? 在對(duì)于一個(gè) Stream 進(jìn)行多次轉(zhuǎn)換操作 (Intermediate 操作),每次都對(duì) Stream 的每個(gè)元素進(jìn)行轉(zhuǎn)換,而且是執(zhí)行多次,這樣時(shí)間復(fù)雜度就是 N(轉(zhuǎn)換次數(shù))個(gè) for 循環(huán)里把所有操作都做掉的總和嗎?其實(shí)不是這樣的,轉(zhuǎn)換操作都是 lazy 的,多個(gè)轉(zhuǎn)換操作只會(huì)在 Terminal 操作的時(shí)候融合起來(lái),一次循環(huán)完成。我們可以這樣簡(jiǎn)單的理解,Stream 里有個(gè)操作函數(shù)的集合,每次轉(zhuǎn)換操作就是把轉(zhuǎn)換函數(shù)放入這個(gè)集合中,在 Terminal 操作的時(shí)候循環(huán) Stream 對(duì)應(yīng)的集合,然后對(duì)每個(gè)元素執(zhí)行所有的函數(shù)。
標(biāo)簽: