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的效能消耗。有沒有既...