【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!
[返回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