這章主要講解關於scala中集合的概念,map,list等
}2.重複之前乙個練習,這次使用到列表的不可變對映
def indexeslist(arg:string)= else }
map;
}
3.編寫乙個函式從乙個整形鍊錶中去除零值
}5.寫乙個函式,作用與mkstring相同,使用reduceleft
8.編寫乙個將一維陣列按照指定行數分割成二維陣列的函式提示,使用grouped的方法
併發修改共享集合會導致結果出錯
10.在9的基礎上實現正確的併發機制
需要注意的是修改共享的集合時使用par進行併發是不明智的,會導致結果不準確
另外aggregate函式是乙個科里化函式,第乙個引數為初始值,第二個括號中的兩個引數,第乙個是對分塊區域進行處理的函式,第二個是合併時需要用到的函式,在對其內部函式實行不清楚時,推薦按照如下方式進行編寫,方便理解
def
seqop
(map:hashmap[char,int],key:char):hashmap[char,int]=
defcombop
(map1:hashmap[char,int],map2:hashmap[char,int]):hashmap[char,int]=)
} var str="abcabc";
val fre=new scala.collection.mutable.hashmap[char,int];
str.aggregate(fre)(seqop, combop);
println(fre);
scala 集合型別
iterable 是序列 seq 集 set 對映 map 的特質 序列式有序的集合如陣列和列表 集合可以通過 方法確定對每個物件最多包含乙個 對映包含了鍵值對映關係的集合 列表快取 使用listbuffer代替list 另乙個理由是為了避免棧溢位的風險 陣列快取 arraybuffer需要先從可變...
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集合 005
定長陣列 println test val a new array string 5 a.length a 0 hello 賦值 a 1 取值 b 1 flink 可以修改值,並沒有修改指標 val c array 1,2,3,4,5,6 c.mkstring 轉換為字串 c.mkstring c....