集是不重复元素的集合,列表得元素是按照插入得先后顺序组织的,但是集的元素并不记录插入的顺序,而是以“哈希”方法对元素的值进行组织,它允许你快速地找到某个元素。
1、不可变集
//1、集包括可变集和不可变集,缺省情况下创建的集都是不可变集。 scala> var myset = Set("Hadoop",101) myset: scala.collection.immutable.Set[Any] = Set(Hadoop, 101) //添加元素 scala> myset += "Spark" scala> myset res1: scala.collection.immutable.Set[Any] = Set(Hadoop, 101, Spark)
2、可变集
声明不可变集时,如果使用val,mySet += “Scala”执行时会报错,所以需要声明为var。
如果要声明一个可变集,则需要引入scala.collection.mutable.Set包,具体如下(在Scala解释器中执行):
scala> import scala.collection.mutable.Set import scala.collection.mutable.Set scala> val myMutableSet = Set("Database","BigData") myMutableSet: scala.collection.mutable.Set[String] = Set(BigData, Database) scala> myMutableSet += "Cloud Computing" res2: myMutableSet.type = Set(BigData, Cloud Computing, Database) scala> myMutableSet res3: scala.collection.mutable.Set[String] = Set(BigData, Cloud Computing, Database) scala> print(myMutableSet) Set(BigData, Cloud Computing, Database)
声明myMutableSet为val变量(不是var变量),由于是可变集,因此,可以正确执行myMutableSet += “Cloud Computing”,不会报错。
注意:虽然可变集和不可变集都有添加或删除元素的操作,但是,二者有很大的区别。对不可变集进行操作,会产生一个新的集,原来的集并不会发生变化。 而对可变集进行操作,改变的是该集本身,