object mutiltable
println()}}}
簡寫
for
(i <
-1 to 9
; j <
-1 to i)
val array =
array
("hello huangbo"
,"hello xuzheng"
,"hello wangbaoqiang"
) val array2 =array.
map(
(x:string)
=> x.
split
(" "))
//拆分每個元素 array(array(hello, huangbo), array(hello, xuzheng), array(hello, wangbaoqiang))
val array3 = array2.flatten//將裡層陣列元素展開成外層陣列的元素array(hello, huangbo, hello, xuzheng, hello, wangbaoqiang)
val array4 = array3.
map(
(x:string)
=>
(x,1))
//轉變成鍵值對array((hello,1), (huangbo,1), (hello,1), (xuzheng,1), (hello,1), (wangbaoqiang,1))
val array5 = array4.
groupby
((x:
(string,int))=
> x._1)
//按照鍵分組map(xuzheng -> array((xuzheng,1)), huangbo -> array((huangbo,1)), wangbaoqiang -> array((wangbaoqiang,1)), hello -> array((hello,1), (hello,1), (hello,1)))
val array6 = array5.
map(
(x:(string,array[
(string, int)])
)=>
(x._1,x._2.length)
)//統計最後結果
println
(array6.tostring)
//map(xuzheng -> 1, huangbo -> 1, wangbaoqiang -> 1, hello -> 3)
array.
map(
(x:string)
=> x.
split
(" "))
.flatten.
map(
(x:string)
=>
(x,1))
.groupby
((x:
(string,int))=
> x._1)
.map
((x:
(string,array[
(string, int)])
)=>
(x._1,x._2.length)
)
a. 其中,array.map(x => x.split(" 「)).flatten效果和array.flatmap(x => x.split(」 "))一致:
b. 通過mapvalues方法,直接作用於map的value值,只改變value值到目標形式:
3)a. 先補充方法
fold,foldleft,foldright:第乙個括號是初始值,第二個括號中是聚合函式
fold和reduce相似,只是要傳入兩個引數,第乙個引數相當於sum
由下圖可以看出,fold和reduce是很相似的(同種型別情況下),fold第二個括號裡面必須是相同的型別最終返回的也是同種型別
而foldleft第二個括號中的連個引數第乙個必須是int型別的(因為它始終和第乙個括號中的數字相互賦值,所以必須與第乙個括號裡數值同種型別),y是輪詢集合裡面的元素,可以是其他型別
foldright則是x從右面輪詢集合裡面的元素
b. 如下圖所示,通過fold可以避免當(hello,3)等情況,不能使用陣列的長度來統計結果
將得到的結果按照統計的數值大小排序
先把map轉換為陣列
通過sorted方法排序
將按照list元素,即元組的第乙個元素按照字典順序排序
通過sortby方法排序
scala練習題 Scala基礎
1 在scala repl中,計算3的平方根,然後再對該值求平方。現在,這個結果與3相差多少?scala scala.math.sqrt 3 warning there were 1 deprecation warnings re run with deprecation for details r...
scala基礎練習,學習scala必備知識點
有一句話叫做 先看懂,然後再手懂。就是先腦子會 然後再手練熟了 這確實是程式設計師的必備精神之一,多學多敲多看。作為乙個scala初學者,有必要先學習scala的基礎 scala基礎學習,點進去你就會有收穫了 特別注意scala嚴格遵循大小寫,關鍵字名不能寫錯 下面就讓我們來練習一下下,我們可愛的s...
C語言基礎練習(三)
include void main void i if a left 1 a 如果沒找到起始標誌 a 報錯。printf 請以a開頭 else if a right z 如果找到 a 卻沒找到 z 報錯 else 如果符合要求,輸出。printf d.n right left return incl...