scala中的可变数据结构和不可变数据结构

不可变

api不太丰富c++

若是是var修饰,引用可变,支持读写api

若是是val修饰,引用不可变,只能写入一次值,其后只读spa

可变

api丰富与Java中Map基本相似scala

若是是var修饰,引用可变,支持读写code

若是是val修饰,引用不可变,支持读写io

例子:table

var b:Map[String,Int]=Map("k1"->1,"k2"->2)
b-=("k1")
b+=("k3"->3,"k4"->4)
println(b)

//val c:Map[String,Int]=Map("k1"->1,"k2"->2)
//c-=("k1")
//c+=("k3"->3,"k4"->4)
//println(c)   报错
import scala.collection.mutable.Map
val a:Map[String,Int]=Map("k1"->2,"k2"->1)
a-=("k1")
a+=("k3"->3,"k4"->4)
println(a)

var c:List[Int]=List(1,2)
c-=(1)
c:+=(3)
c++=List(4,5)
println(c)

import scala.collection.mutable.ListBuffer
val d:ListBuffer[Int]=ListBuffer(1,2)
d-=(1)
d+=(5)
d++=ListBuffer(3,4)
println(d)

结果:import

Map(k2 -> 2, k3 -> 3, k4 -> 4)
Map(k3 -> 3, k4 -> 4, k2 -> 1)
List(2, 3, 4, 5)
ListBuffer(2, 5, 3, 4)