欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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操作在日常生活中会被经常用到,上述只是简单的操作,如果能够灵活运用,会有很好的数据整合效果。

相关标签: Scala