使用数组/列表或集合的主要区别是什么。使用一个而不是另一个的理由是什么?我查看了文档,似乎它们都有许多常用的方法。
我已经准备好知道列表是不可变的,集合是如何不可变和可变的。
val Stuff = Array(1,2,3,4)
val Apple = Set(1,2,3,4)
Stuff.map(x => x*2)
Apple.map(x => x*2)
答案 0 :(得分:8)
Set
是无序的,不能有重复的项目。
scala> Set(1,2,3,1,2,3) == Set(3,2,1)
res2: Boolean = true
序列(Array
,List
,Vector
等)是有序的,可以包含重复的元素。
使用你的例子(顺便说一句,不编译......):
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不能包含重复元素。
添加元素已存在的集合不会产生任何影响。