SCala 集(set)

集是不重复元素的集合,列表得元素是按照插入得先后顺序组织的,但是集的元素并不记录插入的顺序,而是以“哈希”方法对元素的值进行组织,它允许你快速地找到某个元素。

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”,不会报错。

注意:虽然可变集和不可变集都有添加或删除元素的操作,但是,二者有很大的区别。对不可变集进行操作,会产生一个新的集,原来的集并不会发生变化。 而对可变集进行操作,改变的是该集本身,

猜你喜欢

转载自www.cnblogs.com/RHadoop-Hive/p/10075407.html
今日推荐