本小节主要是scala中的Set和Map的使用
在scala中Array是mutable(可变的), 而List是immutable(不可变的)
package.scala中的源码:
val List = scala.collection.immutable.List
而Set和Map都有两种mutable和immutable的 (取自Predef.scala)
/** @group aliases */
val Map = immutable.Map
/** @group aliases */
val Set = immutable.Set
但是Set和Map在scala中默认都是immutable的, 如果要使用mutable类型的必须显示声明。
一,Set的使用
错误的做法:
val set1 = Set(1, 2)
set1 += 3 //错误 immutable set是不可以在原来的对象添加修改元素的
println(set1)
正确的做法:
var set1 = Set(1, 2)
set1 += 3 //这里重新生成了另一个新的Set并将其赋值给set1
print(set1)
如果想使用某个Set的实现类,比如HashSet 也是如此
import scala.collection.immutable
var hastSet1 = immutable.HashSet(1, 2)
hastSet1 += 3
println(hastSet1)
import scala.collection.mutable
val set2 = mutable.Set(1, 2)
set2 += 3
println(set2)
如果想使用某个Set的实现类,比如HashSet 也是如此
import scala.collection.mutable
val hastSet1 = mutable.HashSet(1, 2)
hastSet1 += 3
println(hastSet1)
二,Map的使用
var map1 = Map(1 -> "a", 2 -> "b")
map1 += (3 -> "c")
println(map1)
println(map1(1))
输出结果
Map(1 -> a, 2 -> b, 3 -> c)
a
import scala.collection.mutable
val map2 = mutable.Map[Int, String]()
map2 += (1 -> "a")
map2 += (2 -> "b")
map2 += (3 -> "c")
println(map2)
println(map2(1))
输出结果
Map(1 -> a, 2 -> b, 3 -> c)
a