SCala 集(set)
阿新 • • 發佈:2018-12-06
集是不重複元素的集合,列表得元素是按照插入得先後順序組織的,但是集的元素並不記錄插入的順序,而是以“雜湊”方法對元素的值進行組織,它允許你快速地找到某個元素。
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”,不會報錯。
注意:雖然可變集和不可變集都有新增或刪除元素的操作,但是,二者有很大的區別。對不可變集進行操作,會產生一個新的集,原來的集並不會發生變化。 而對可變集進行操作,改變的是該集本身,