scala的List、Array、ListBuffer、ArrayList、Set、元組區別區別

1、List  列表:列表長度和內容均不可變,所有元素的類型相同,值一旦被定義了就不能改變,即不可被賦值改變,底層是鏈表結構。

scala list 有三個基本操作,head 返回列表第一個元素,tail 返回一個列表,包含除了第一元素之外的其他元素,isEmpty 在列表爲空時返回true。

 

注意:向List中插入元素,是生成新的list列表。

 

list教程:https://www.runoob.com/scala/scala-lists.html

可變和不可變列表:https://blog.csdn.net/tototuzuoquan/article/details/73825623

 

2、ListBuffer :長度內容均可變 的列表。

 

https://www.cnblogs.com/drl-blogs/p/11086849.html

 

3、Array 數組:數組長度創建時候指定,所有元素類型相同,值可變,可支持索引快速訪問指定元素。

 

 

https://www.runoob.com/scala/scala-arrays.html

 

4、ArrayList 可變數組:

跟Array很像,除了可以額外地從序列頭部或尾部添加或移除元素。

所有的Array操作在ArrayBuffer都可用。不過由於實現的包裝,會稍慢一些。

新的添加和移除操作平均而言是常量時間,不過偶爾會需要線性的時間,這是因爲其實現需要不時地分配新的數組來保存緩存的內容。

 

5、Set:

Scala Set(集合)是沒有重複的對象集合,所有的元素都是唯一的。

Scala 集合分爲可變的和不可變的集合

默認情況下,Scala 使用的是不可變集合,如果你想使用可變集合,需要引用 scala.collection.mutable.Set 包。

注意: 雖然可變Set和不可變Set都有添加或刪除元素的操作,但是有一個非常大的差別。對不可變Set進行操作,會產生一個新的set,原來的set並沒有改變,這與List一樣。 而對可變Set進行操作,改變的是該Set本身,與ListBuffer類似。

 

https://www.runoob.com/scala/scala-sets.html

 

6、元組:不可變,但與列表不同的是元組可以包含不同類型的元素。

 

https://www.runoob.com/scala/scala-tuples.html

 

7、Map 映射:

Map(映射)是一種可迭代的鍵值對(key/value)結構。

所有的值都可以通過鍵來獲取。

Map 中的鍵都是唯一的。

Map 也叫哈希表(Hash tables)。

Map 有兩種類型,可變與不可變,區別在於可變對象可以修改它,而不可變對象不可以。

默認情況下 Scala 使用不可變 Map。如果你需要使用可變集合,你需要顯式的引入 import scala.collection.mutable.Map 類

 

 https://www.runoob.com/scala/scala-maps.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章