scala習題(十三) 集合

2021-07-09 14:50:25 字數 1787 閱讀 3811

這章主要講解關於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....