列表和集之间的区别

时间:2014-05-20 06:11:28

标签: scala scala-collections

使用数组/列表或集合的主要区别是什么。使用一个而不是另一个的理由是什么?我查看了文档,似乎它们都有许多常用的方法。

我已经准备好知道列表是不可变的,集合是如何不可变和可变的。

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 个答案:

答案 0 :(得分:8)

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)

答案 1 :(得分:3)

功能方面的主要区别在于Set s不能包含重复元素。

添加元素已存在的集合不会产生任何影响。