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

 

原文地址:https://www.cnblogs.com/guoyu1/p/12091296.html