scala 非常重要的高階函式

2021-09-21 02:08:02 字數 1879 閱讀 1495

函式名 說明

示例map

對映,把乙個集合轉換為另外乙個集合。集合中元素個數不變

//> res1: list[int] = list(2, 3, 4, 5, 6, 7)

val1.map      

//> res2: list[string] = list(y1, y2, y3, y4, y5, y6)

val1.map       

//> res2: list[string] = list(y1, y2, y3, y4, y5, y6)

val1.map .map

flatmap

扁平化map方法

也是對映方法,會概念元素的形式,此外元素個數也會變化

val l7=list("hello,world","hello,hadoop","hello,1811")

val l9=l7.flatmap   //> l9  : list[string] = list(hello, world, hello, hadoop, hello, 1811)

filter

過濾//> res3: list[int] = list(4, 5, 6)

val1.filter

//> res4: list[int] = list(6)

val1.filter .filter

reduce 

歸約,reduce的過程:將上次的執行結果和下乙個值進行運算

函式接收兩個引數 => 返回乙個值

//> res5: int = 21

val1.reduce  

內部的執行過程:

(1,2)                 => 1+2        第一次運算

((1+2),3)         => 3+3        第二次運算

((3+3),4)        => 6+4        第三次運算

和大資料中的mapreduce不同的時,大資料中的reduce的引數是鍵值對,而這裡可以是任意物件。

groupby

按指定規則做聚合,最後將結果返回到乙個map對映裡

//> res7: scala.collection.immutable.map[int,list[int]] = map(5 -> list(5),

// 1 ->list(1), 6 -> list(6), 2 -> list(2), 3 -> list(3), 4 -> list(4))

val1.groupby    

var v2 = list(("北京",1),("上海",3),("天津",2), ("北京",2), ("北京",1), ("上海",4), ("北京",2))

v2.groupby

執行結果:

map(

上海->list((上海,3),(上海,4)),

北京->list((北京,1),(北京,2) ,(北京,1) ,(北京,2),

天津->list((天津,2))

)val2.groupby(x=>x._1).filter(x=>x._1=="bj").mapvalues(x=>x.map(i=>i._2).reduceleft((a,b)=>a+b))

mapvalues

對map集合中的值做對映

注:只有map型別有

//結果為map的value值:1 2 3 4

val3.mapvalues

//結果為元組的第二列值:tom rose jim

val val4=map("k1"->("name","tom"),"k2"->("name","rose"),"k3"->("name","jim"))

map(k1 -> tom, k2 -> rose, k3 -> jim)

val4.mapvalues

非常重要的git

什麼是git linux出現之後,很快成為了最火的伺服器系統,因為其是開源的,所有有非常多的人對其進行開發,以至於出現了各種不同的版本。人們把自己寫的 發給linus linu創始人 由其手動的拼接這些 手動拼接了11年之後,linus用了兩周的時間寫出了git。git是linus為linux寫的分...

非常重要 警惕招聘詐騙

請大家找工作時注意.近日,本人遭遇一起非常惡劣的招聘詐騙,其內蒙可能比我知道的更加黑,特如實記錄,但不加推測和評述,給大家提個醒。事情經過 上週六,在東方賓館的廣東省高階人才洽談會 詳見 上,我向深圳一家公司 簡稱 網路 投遞了簡歷並現場初步洽談。這部分是公司確有參入吧?如果不是那麼這個犯罪團夥就太...

運算元的定址方式(非常重要)

形成運算元的有效位址的方法叫運算元的定址方式。指令中的運算元欄位的位址碼由形式位址和定址方式特徵位等組合形成。一般的指令中所給出的位址碼並不是運算元的有效位址。形式位址也叫偏移量,是指令字結構中給定的位址量。定址過程就是把運算元的形式位址變換成有效位址的過程。形式位址 定址方式 有效位址 定址方式 ...