Scala集合的常用方法以及Map的可變和不可變

2021-10-21 00:21:39 字數 3233 閱讀 7132

package com.chengzi.collection

import scala.collection.mutable

/** * desc:

* * 對scala集合做乙個梳理

* * @author:chengli

* @date:2021 /3/3 9:24

*/object collectiontest

println(

" list "

)//不可變 :+ 和+:集合本身不變化返回新的集合

val list1 = scala.collection.immutable.list(

"hello"

,"world"

)val list2 = list1 :

+"nihao"

println(list1.mkstring(

",")

) println(list2.mkstring(

",")

)val list3 = list(1,

2,3)

val list4 =4:

:5::

6:: list3 :

:: nil

val list5 =4:

:5::

6:: list3 :

: nil

println(list4.mkstring(

",")

) println(list5.mkstring(

",")

)//可變

val list6 = scala.collection.mutable.listbuffer(

"hello"

,"world"

) list6 +=

"123"

"456"

) list6 ++

= list(

"789"

)val list7 = list6 ++ list(

"aaa"

)val list8 = list6 :

+"bbb"

println(list6.mkstring(

",")

) println(list7.mkstring(

",")

) println(list8.mkstring(

",")

) list6.remove(0)

println(list6.mkstring(

",")

) println(

" map "

)//不可變:

val map1: map[

string

,int

]= scala.collection.immutable.map(

"a"-

>1,

"b"-

>2)

map1 +

("c"

->3)

println(map1)

println(

if(map1.contains("")

)else

)//map1("a") = 3 可變map才能修改

//不可變

val map2 =

new scala.collection.mutable.hashmap[

string

,int

] map2 +=

("a"

->1,

"b"-

>2,

("c",3

))map2 -=

("d"

) println(map2)

println(

" set "

)//不可變

var set1 = set(1,

2,3)

set1 +=

4//定義為val則不可以

println(set1)

val set2 = mutable.set(1,

2,3)

set2 +=

4 println(set2)

println(

"//可變map和不可變map的應用///"

)val seq =

"abcaaaaaabbbbbccccc"

val chartoint = seq.foldleft(map[

char

,int](

))(usemap)

println(chartoint)

val chartoint1 = seq.foldleft(mutable.map[

char

,int](

))((map:mutable.map[

char

,int

],char:

char

)=>map +=

(char-

>

(map.getorelse(char,0)

+1))

) println(chartoint1)

}def usemap(map:map[

char

,int

],char:

char

):map[

char

,int]=

}

array ///

0,41,4

1,41

4list

hello,world

hello,world,nihao

4,5,6,1,2,3

4,5,6,list(1, 2, 3)

hello,world,123,456,789

hello,world,123,456,789,aaa

hello,world,123,456,789,bbb

world,123,456,789

map

map(a -> 1, b -> 2)

2map(a -> 1, c -> 3, b -> 2)

set

set(1, 2, 3, 4)

set(1, 2, 3, 4)

//可變map和不可變map的應用///

map(a -> 6, b -> 6, c -> 6, a -> 1)

map(a -> 6, c -> 6, a -> 1, b -> 6)

process finished with exit code 0

Javascript遍歷map集合以及map物件

在遍歷map的時候發現了,map物件和map集合的遍歷是有很大的不同。map集合是無序的,並且主鍵是唯一的。集合中的鍵和值可以是任何型別。如果使用現有金鑰向集合新增值,則新值會替換舊值。var map for var key in map 輸出結果 objectvar m new map m.set...

集合的洗牌,排序,拆分以及常用遍歷方法

前些天去面試,有個面試題有這個,這裡做了一些總結,供以後參考 listl new arraylist for int i 0 i 52 i l.add i,i 2 打亂順序排列 collections.shuffle l for int i 0 i 52 i 從集合排序,除了這個集合的幫助類,還有陣...

Scala 的並行集合

當出現kafka單個分割槽資料量很大,但每個分割槽的資料量很平均的情況時,我們往往採用下面兩種方案增加並行度 l 增加kafka分割槽數量 l 對拉取過來的資料執行repartition 但是針對這種情況,前者的改動直接影響所有使用消費佇列的模型效能,後者則存在乙個shuffle的效能消耗。有沒有既...