第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java 8中map和flatMap方法有什么區(qū)別?

Java 8中map和flatMap方法有什么區(qū)別?

郎朗坤 2019-08-28 16:50:39
Java 8中map和flatMap方法有什么區(qū)別?在Java 8中,Stream.map和Stream.flatMap方法有什么區(qū)別?
查看完整描述

3 回答

?
達(dá)令說(shuō)

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊

雙方mapflatMap可以應(yīng)用到Stream<T>他們都返回Stream<R>。不同之處在于map操作為每個(gè)輸入值生成一個(gè)輸出值,而flatMap操作為每個(gè)輸入值生成任意數(shù)量(零個(gè)或多個(gè))值。

這反映在每個(gè)操作的參數(shù)中。

map操作采用a Function,為輸入流中的每個(gè)值調(diào)用,并生成一個(gè)結(jié)果值,該值將發(fā)送到輸出流。

flatMap操作采用概念上想要消耗一個(gè)值并產(chǎn)生任意數(shù)量的值的函數(shù)。但是,在Java中,返回任意數(shù)量的值的方法很麻煩,因?yàn)榉椒ㄖ荒芊祷亓慊蛞粋€(gè)值??梢韵胂笠粋€(gè)API,其中mapper函數(shù)flatMap獲取值并返回?cái)?shù)組或aList值,然后發(fā)送到輸出。鑒于這是流庫(kù),一種表示任意數(shù)量的返回值的特別方法是mapper函數(shù)本身返回一個(gè)流!映射器返回的流中的值將從流中排出并傳遞到輸出流。每次調(diào)用mapper函數(shù)返回的值的“叢”在輸出流中根本不被區(qū)分,因此輸出被稱為“扁平化”。

典型用途是用于映射函數(shù)的flatMap返回Stream.empty(),如果要發(fā)送零個(gè)值,或者類似的東西Stream.of(a, b, c),如果要返回幾個(gè)值。但是當(dāng)然可以返回任何流。


查看完整回答
反對(duì) 回復(fù) 2019-08-28
?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

Stream.flatMap,因?yàn)樗拿挚梢圆碌剑且粋€(gè)map和一個(gè)flat操作的組合。這意味著您首先將一個(gè)函數(shù)應(yīng)用于元素,然后將其展平。Stream.map僅在不對(duì)流進(jìn)行展平的情況下將函數(shù)應(yīng)用于流。

要了解流的扁平化,請(qǐng)考慮[ [1,2,3],[4,5,6],[7,8,9] ]具有“兩個(gè)級(jí)別”的結(jié)構(gòu)。扁平化這意味著將其轉(zhuǎn)換為“一級(jí)”結(jié)構(gòu):[ 1,2,3,4,5,6,7,8,9 ]。


查看完整回答
反對(duì) 回復(fù) 2019-08-28
  • 3 回答
  • 0 關(guān)注
  • 4610 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)