Scala入门:遍历操作

大数据技术原理与应用

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!
[返回Spark教程首页]

列表(List)、映射(Map)等数据结构经常需要进行遍历操作。

列表的遍历

可以使用for循环进行遍历:

val list = List(1, 2, 3, 4, 5)
for (elem <- list) println(elem)

或者,也可以使用foreach进行遍历:

val list = List(1, 2, 3, 4, 5)
list.foreach(elem => println(elem)) //本行语句甚至可以简写为list.foreach(println),或者写成:list foreach println

映射的遍历

下面我们创建一个不可变映射:

val university = Map("XMU" -> "Xiamen University", "THU" -> "Tsinghua University","PKU"->"Peking University")

循环遍历映射,是经常需要用到的操作,基本格式是:

for ((k,v) <- 映射) 语句块

下面给出一个实例:

for ((k,v) <- university) printf("Code is : %s and name is: %s\n",k,v)

上面代码执行结果如下:

Code is : XMU and name is: Xiamen University
Code is : THU and name is: Tsinghua University
Code is : PKU and name is: Peking University

或者,也可以只遍历映射中的k或者v。

比如说,我们只想把所有键打印出来:

for (k<-university.keys) println(k)
XMU //打印出的结果
THU //打印出的结果
PKU //打印出的结果

再比如说,我们只想把所有值打印出来:

for (v<-university.values) println(v)
Xiamen University //打印出的结果
Tsinghua University //打印出的结果
Peking University  //打印出的结果

当然,我们也可以使用foreach来实现对映射的遍历,如下(我们在Scala解释器中演示):

scala> university foreach {case(k,v) => println(k+":"+v)} //或者写成:university.foreach({case (k,v) => println(k+":"+v)})
XMU:Xiamen University
THU:Tsinghua University
PKU:Peking University

也可以尝试使用下面形式来遍历(我们在Scala解释器中演示):

scala> university foreach {kv => println(kv._1+":"+kv._2)}
XMU:Xiamen University
THU:Tsinghua University
PKU:Peking University

子雨大数据之Spark入门
扫一扫访问本博客