迭代/遍历映射是访问map所有元素的过程。为此,我们将遍历映射的所有元素,并打印映射的元素的键值对。
映射是一种数据结构,其中包含键-值对形式的数据元素,并且可以使用键访问元素。
创建map的语法:
val map_element = Map( key1 -> value1 , key2 -> value2 )
示例图:
val programmingLang = Map(1 -> "C", 2 -> "C++", 3 -> "Scala");
您可以通过多种方式遍历映射并超出其元素:
使用for循环
使用foreach循环
使用迭代器方法
for循环用于循环映射图元素。
语法:
for((key,value) <- map_name){ //code to be executed }
程序使用for循环打印映射元素
object MyObject { def main(args: Array[String]) { val progLang = Map(1 -> "C" , 2 -> "C++" , 3 -> "Scala" , 4 -> "Python") println("Iterating over Map using for Loop") for((count,language) <- progLang){ println(count + " -> " + language) } } }
输出结果
Iterating over Map using for Loop 1 -> C 2 -> C++ 3 -> Scala 4 -> Python
说明:
在该程序中,我们说明了使用for循环迭代映射的方法。我们创建了一个名为progLang的map,然后使用for循环来打印该map的键和值。
使用映射名称调用foreach循环,并循环访问映射的所有元素。
语法:
map_name.foreach{ //code to be executed }
可以使用两种不同的方法来使用foreach循环来访问map的元素。它们匹配基于表达式和元组的访问。
在基于匹配表达式的访问中,我们将访问map元素,并对其进行命名和访问。
语法:
Map_name.foreach{ case(key, value) => //Code for accessing the values... }
另一种方法是相当不同的,因为它使用元组来访问map的元素。因此,键将是元组的第一个值,而值将是元组的第二个值。
语法:
Map_name.foreach( x => //code for accessing the values...
程序使用foreach循环打印映射元素
object MyObject { def main(args: Array[String]) { val myBikes = Map(1 -> "ThunderBird350" , 2 -> "Yamaha R3" , 3 -> "Iron 883" , 4 -> "BMW S1000RR") println("Iterating over Map using foreach Loop") myBikes.foreach(bike => println("Bike No. : " + bike._1 + " name : " + bike._2)) } }
输出结果
Iterating over Map using foreach Loop Bike No. : 1 name : ThunderBird350 Bike No. : 2 name : Yamaha R3 Bike No. : 3 name : Iron 883 Bike No. : 4 name : BMW S1000RR
说明:
在该程序中,我们说明了使用foreach循环迭代映射的方法。我们创建了一个名为myBikes的map,然后使用元组访问方法使用foreach对其进行迭代。
迭代器方法用于为map创建一个迭代器,该迭代器用于循环映射的值。
语法:
map_name.iterator
它根据map返回一个迭代器。然后,我们必须使用iterator_name.next方法来打印迭代器的元素,这些元素在map的情况下以元组形式返回。
程序使用迭代器方法打印映射元素
object MyObject { def main(args: Array[String]) { val myBikes = Map(1 -> "ThunderBird350" , 2 -> "Yamaha R3" , 3 -> "Iron 883" , 4 -> "BMW S1000RR") println("Iterating over Map using iterator method") val bike = myBikes.iterator while(bike.hasNext) println(bike.next) } }
输出结果
Iterating over Map using iterator method (1,ThunderBird350) (2,Yamaha R3) (3,Iron 883) (4,BMW S1000RR)
说明:
在此程序中,我们说明了使用迭代器方法迭代映射的方法。我们已经创建了一个映射,然后定义了一个迭代器方法,该方法将用于迭代映射的元素。方法itorator.hasnext用于检查迭代器的下一个元素是否存在,并使用iterator.next方法将其打印为元组。