1. 程式人生 > >Scala中set和map的簡單使用

Scala中set和map的簡單使用

//因為Scala旨在幫助您利用功能和命令式樣式,所以它的集合庫可以區分它們可變和不可變的集合。
//例如,陣列總是可變的; 列表總是不可變的。 Scala還提供可變和不可變的集合和對映的替代方案,
//但對兩個版本使用相同的簡單名稱。 對於集合和對映,Scala在類層次結構中建模可變性
//Scala API包含一個用於集合的基本特徵,其中的特徵類似於Java介面
// var set1 = Set("tony","hello")
// set1 += "world"  //這個新增是在後面新增
//查詢set中是否包含hello字串
// println(set1.contains("hello"))
// println("新增元素之後的set集合:" +set1)
//set在scala中有兩種實現,一種是可變的,一種是不可變得。當使用+方法進行操作的時候,不可變和可變的表現形式不一樣
//不可變得會將元素加到原來你的set集合中,並且返回一個新的set集合,但是可變的會加到以前的set集合中,不會返回一個新的set集合
//因此可變的可以使用+=的操作,但是不可變的不能使用+=操作
//這裡預設為可變的
//如果不是可變的話,可以import匯入相關的實現
import scala.collection.mutable.Set
//匯入不可變得HashSet
import scala.collection.immutable.HashSet
//匯入可變的map包
import scala.collection.mutable.Map
var muSets = Set("hello","scala")
muSets += "good"  //也可以寫成muSets.+=("good")  這個實在前面新增? why?
println("可變的set使用:" + muSets)

val hashSet = HashSet("helloHashSet","world")
println("不可變得hashSet:" + hashSet + "error?")
//map的使用,scala也提供了兩個map的實現。一個是可變的,一個是不可變得map
val map1 = Map[Int,String]()
map1 += (1 -> "this is a first")
map1 += (2 -> "this is a secord")
map1 += (3 -> "this is a three")
println("列印map中的map(1):" + map1(1))
//當我們給map新增元素的時候,如上使用+=操作符以及->
//Scala編譯器轉換二元運算表示式,如1 - >“Go to island”成(1).->("Go to island")。 因此,當你說1 ->“Go to island”時,
//你實際上是在一個值為1的整數上呼叫一個名為 ->的方法,傳入一個值為“Go to island”的字串。
//這個 ->方法,其中您可以呼叫Scala程式中的任何物件,返回一個雙元素元組包含鍵和值。然後,您將此元組傳遞給+=方法