列表与集合的区别

3
使用数组/列表和集合的主要区别是什么?使用其中一个的理由是什么?我已经查看了文档,它们似乎都有许多共同的方法。我已经知道列表是不可变的,而集合既可以是不可变的也可以是可变的。
val Stuff = Array(1,2,3,4)
val Apple =  Set(1,2,3,4)

Stuff.map(x => x*2)
Apple.map(x => x*2)
2个回答

12

一个Set是无序的,且不能有重复的项。

scala> Set(1,2,3,1,2,3) == Set(3,2,1)
res2: Boolean = true

序列(ArrayListVector等)是有序的且可以包含重复元素。

以您的示例为例(顺便说一句,它无法编译...):

val stuff = Array(1, 2, 3, 4)
val apple = Set(1, 2, 3, 4)

stuff.map(x => x % 3)  // Array(1, 2, 0, 1)
apple.map(x => x % 3)  // Set(1, 2, 0)

4

就功能而言,Set与其他集合的主要区别在于它不能包含重复元素。

如果向Set中添加已存在的元素,将不起任何作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接