Scala篇章04
程序员文章站
2022-03-04 13:56:57
...
映射是键值对偶的集合。Scala有一个通用的叫法---元组---N个对象的聚集,并不一定要相同类型的。对偶不过是一个n=2的元组。元组对于那种需要将两个或更多值聚集在一起时特别有用。
val scores=Map("a"->1,"b"->2,"c"->3)
//上述代码块构造除了一个不可变的集合Map[String,Int],这里面的值是不可变的,如果想要一个可变的映射,则引入这个包
import scala.collection.mutable._
//这个包就是可变的
定义映射有很多种方法:
val scores=Map(("a",1),("b",2),("c",3))
只不过->操作符看上去比圆括号更容易读那么一点,也更加符合大家对映射的直观感觉:映射这种数据结构是一种将映射到值得函数。区别在于通常得函数计算值,而映射只是做查询
获取映射中得值
在Scala中函数和映射之间的相似性尤为明显,因为你将使用()表示法来查找某个键值对得值
val scoresValue=scorces("a") //scores=1,类似于Java中得scores.get("a")
然后是一个getOrElse得使用
因为咱们在日常的使用中,经常会用到这种获取value值得操作,所以就有了这样一个快捷写法。
val scoresValue = scores.getOrElse("a",0L)// 第一个参数是key得值,后面得参数是如果没有得返回值得话就返回一个0
如何往映射里面添加值呢?
scores+=("bob"->10,"gril"->12)
value的值可以是多样化的,跟java一样
移除某一个键值对
scores-="bob"
迭代映射
scores.foreach{item=>
//item是里面key和value
print("[key=>"+item._1+",value=>"+item._2+"]")
}
//输出结果[key=>a,value=>1][key=>b,value=>2][key=>c,value=>3][key=>girl,value=>12]
其实有很多种的迭代方式,,for,while,等等
拉链操作
val arr1=Array("小明","小红","小蓝")
val arr2=Array("10","15","18")
val arrZip=arr1.zip(arr2) // arrZip=Array(("小明",10),("小红",15),("小蓝",18))
zip操作在日常生活中会被经常用到,上述只是简单的操作,如果能够灵活运用,会有很好的数据整合效果。
上一篇: mysql幻读问题————间隙锁