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

本文详细介绍了Scala中Map和List的基本操作,包括如何使用var和val修饰符进行可变和不可变引用的区别,并通过具体示例展示了如何增删元素。此外还对比了可变与不可变集合之间的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不可变

api不太丰富

如果是var修饰,引用可变,支持读写

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

可变

api丰富与Java中Map基本类似

如果是var修饰,引用可变,支持读写

如果是val修饰,引用不可变,支持读写

例子:

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)

结果:

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

 

转载于:https://my.oschina.net/u/2000675/blog/1861660

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值