Scala入門 不可變集與可變集

2021-10-02 15:46:31 字數 1955 閱讀 1254

# set
set(集)是代表沒有重複元素的集合。set具備以下性質:

元素不重複

不保證插入順序

scala中的集也分為兩種,一種是不可變集,另一種是可變集。

語法

建立乙個空的不可變集,語法格式:

val/var 變數名 = set[型別]()

給定元素來建立乙個不可變集,語法格式:

val/var 變數名 = set(元素1, 元素2, 元素3...)

定義乙個空的不可變集

參考**

scala> val a = set[int]()

a: scala.collection.immutable.set[int] = set()

定義乙個不可變集,儲存以下元素:1,1,3,2,4,8

參考**

scala> val a = set(1,1,3,2,4,8)

a: scala.collection.immutable.set[int] = set(1, 2, 3, 8, 4)

建立乙個集,包含以下元素:1,1,2,3,4,5

獲取集的大小

遍歷集,列印每個元素

刪除元素1,生成新的集

拼接另乙個集(6, 7, 8)

拼接乙個列表(6,7,8, 9)

參考**

// 建立集

scala> val a = set(1,1,2,3,4,5)

a: scala.collection.immutable.set[int] = set(5, 1, 2, 3, 4)

// 獲取集的大小

scala> a.size

res0: int = 5

// 遍歷集

scala> for(i <- a) println(i)

// 刪除乙個元素

scala> a - 1

res5: scala.collection.immutable.set[int] = set(5, 2, 3, 4)

// 拼接兩個集

scala> a ++ set(6,7,8)

res2: scala.collection.immutable.set[int] = set(5, 1, 6, 2, 7, 3, 8, 4)

// 拼接集和列表

scala> a ++ list(6,7,8,9)

res6: scala.collection.immutable.set[int] = set(5, 1, 6, 9, 2, 7, 3, 8, 4)

可變集合不可變集的建立方式一致,只不過需要提前匯入乙個可變集類。

手動匯入:import scala.collection.mutable.set

定義乙個可變集,包含以下元素: 1,2,3, 4

新增元素5到可變集中

從可變集中移除元素1

參考**

scala> val a = set(1,2,3,4)

a: scala.collection.mutable.set[int] = set(1, 2, 3, 4)

// 新增元素

scala> a += 5

res25: a.type = set(1, 5, 2, 3, 4)

// 刪除元素

scala> a -= 1

res26: a.type = set(5, 2, 3, 4)

scala不可變集set

set set 集 是代表沒有重複元素的集合。set具備以下性質 元素不重複 不保證插入順序 scala中的集也分為兩種,一種是不可變集,另一種是可變集。不可變集 定義語法 建立乙個空的不可變集,語法格式 scala val var 變數名 set型別 給定元素來建立乙個不可變集,語法格式 scal...

可變與不可變

元組 tuple 元組一旦被建立就不能被修改,採用逗號和圓括號 來表示。列表推導式 可變與不可變 序列型別 是否有序 是否可變 列表有序可變 元組有序 不可變 字串有序 不可變 字典無序可變 集合無序 不可變不管是可變還是不可變的序列型別 1 分片必定產生新的序列 2 號在等號右邊,必定產生新的序列...

python可變與不可變

可變與不可變型別的實質實際上就是儲存機制的不同 不可變型別 比如字串 被稱為不可變的字串行,每個字元底層均有規範的unicode碼對應,記憶體規定無法對單一的乙個字元進行修改,要修改字串必須重新指向乙個全新的字串 可變型別 一方面,該列表可以保證在位址不變的前提下,改變列表內容 另一方面,該引用也可...