跟连乐一起学Scala-映射和元组

映射和元组

构造映射

//不可变的Map[String, Int]
val scores = Map("Alice" -> 10, "Bob" -> 3, "Cindy" -> 8)

//可变Map[String, Int]
val scores = scala.collection.mutable.Map("Alice" -> 10, "Bob" -> 3, "Cindy" -> 8)

//空映射
val scores = new scala.collection.mutable.HashMap[String, Int]

获取映射中的值

val bobScore = scores("Bob")  //获取值
val bobScore = if (scores.contains("Bob")) scores("Bob") else 0
等价于:
val bobsScore = scores.getOrElse("Bob", 0)

更新映射中的值

//更新"Bob"对应的值
scores("Bob") = 12  

//增加数据
scores("Fred") = 7  //一条
scores += ("Bob" -> 10, "Fred" -> 7) //多条

//删除数据
scores -= "Alice"

迭代映射

for((k, v) <- 映射) //处理k和v

scores.keySet //得到所有Key组成的集合

for ((k, v) <- 映射) yield (v, k) //反转

已排序映射

树形映射:

val scores = scala.collection.immutable.SortedMap("Alice" -> 10, "Fred" -> 7, "Bob" -> 3, "Cindy" -> 8)

与Java的相互操作

import scala.collection.JavaConversions.mapAsScalaMap
val scores: scala.collection.mutable.Map[String, Int] = new Java.util.TreeMap[String, Int]  //scala到Java
import scala.collection.JavaConversions.mapAsJavaMap
import java.awt.font.TextAttribute._
val attrs = Map(FAMILY -> "Serif", SIZE -> 12)
val font = new java.awt.Font(attrs)

元组

映射是键/值对偶的集合。
对偶是元组的最简单形态。
元组是不同类型的值的集合。

组成公式:
元组的值是通过将单个的值包含在圆括号中构成。
例子:

val t = (1, 3.14, "Spring")

获取对应的值:

val second = t._2  //或者:
val second = t _2  //即点可以替换为空格

元组的下标是从1开始的,不是从0开始的哦!


拉链操作

val symbols = Array("<", "_", ">")
val counts = Array(2, 10, 2)
val pairs = symbols.zip(counts)

结果:

Array(("<", 2), ("_", 10), (">". 2))

这样做的目的->可以一起被处理

for((s, n) <- pairs) Console.print(s * n)

结果:

<<__________>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值