scala-映射map

构建一个不可变映射
val scores = Map("Alice"->10,"Bob"->3,"Cindy"->8)

构建一个可变映射
val scores = scala.collection.mutable.Map("Alice"->10,"Bob"->3,"Cindy"->8)

构建一个空映射
val scores = new scala.collection.mutable.HashMap[String,Int]

也可以用下面的方式创建映射
val scores = Map(("Alice",10),("Bob",3),("Cindy",8))

获取映射中的值
val bobsScore = scores("Bob")

如果映射不包含请求中使用的键则会抛出异常
val bobsScore = if(scores.contains("Bob"))scores("Bob") else 0
val bobsScore = scores("Bob").getOrElse("Bob",0)

更新映射中的值
可变映射可以更新某个映射的值,或者添加一个新的映射关系
scores("Bob") = 10 //更新
scores("Fred") = 7 //增加新的键值对
scores += ("Bob"->10,"Fred"->7)//用+=操作来添加多个关系
scores -= "Alice" //移除某个键和对应的值

对于不可变映射,可以获取一个包含所需的变更的新映射:
var newScores = scores + ("Bob"->10,"Fred"->7)
newScores = newScores - "Bob"

迭代映射
for((k,v) <- 映射) 处理k和v
for(k <- scores.keySet) print(k)
for(v <= scores.values) print(v)
for((k,v) <- scores) yield (v,k) //反转映射

排序映射
val scores = scala.collection.immutable.SortedMap("Alice"->10,"Bob"->3,"Cindy"->8)

按插入的顺序访问所以的键
val months = scala.collection.mutable.LinkedHashMap("January"->1,"February"->2)

与java的互操作
import scala.collection.JavaConversions.mapAsScalaMap
import scala.collection.JavaConversions.mapAsJavaMap
val scores:scala.collection.mutable.Map[String,Int] = new java.util.TreeMap[String,Int]

拉链操作
val symbols = Array("<","-",">")
val counts = Array(2,10,2)
val pairs = Symbols.zip(counts)

输出对偶的数组
Array(("<",2),("-",10),(">",2))
for((s,n) <- pairs) print


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值