映射是一种特殊的集合类型,它以键值对的形式存储数据。这些也称为哈希表。用于提取值的键应该是唯一的。
您可以在Scala中创建可变的和不变的映射。不可变版本是内置的,但可变的映射创建需要显式导入。
语法:
val mapName = Map("key1"->"value1", ...)
现在让我们看看如何在Scala中创建可变映射?
object myObject { def main(args: Array[String]) { val cars = Map("Honda" -> "Amaze", "Suzuki" -> "Baleno", "Audi" -> "R8", "BMW" -> "Z4") println(cars) } }
输出结果
Map(Honda -> Amaze, Suzuki -> Baleno, Audi -> R8, BMW -> Z4)
通常,使用以上创建映射的方式。但是有时为了使代码更清晰,使用了另一种声明映射的方法。
val cars = Map( ("Honda" -> "Amaze"), ("Suzuki" -> "Baleno"), ("Audi" -> "R8"), ("BMW" -> "Z4") )
当映射创建为键->值对时,也可以使用此方法,因此将对包围在括号内。两种样式均有效,并且可以使用任何样式。
当我们需要在声明之后向map添加更多元素时,需要可变映射。
要创建可变映射,请使用scala.collection.mutable.Map或将其导入以创建不可变映射。
语法:
var map_name = collection.mutable.Map( "key1"->"value1", "key2"->"value2", ... )
在Scala中创建可变映射的程序
object myObject { def main(args: Array[String]) { val cars = collection.mutable.Map( "Honda" -> "Amaze", "Suzuki" -> "Baleno", "Audi" -> "R8" ) println(cars) println("Adding new elements to the map") cars += ("BMW" -> "Z4") println(cars) } }
输出:
HashMap(Audi -> R8, Honda -> Amaze, Suzuki -> Baleno) Adding new elements to the map HashMap(BMW -> Z4, Audi -> R8, Honda -> Amaze, Suzuki -> Baleno)
您可以先创建一个空的可变映射,然后使用+ =向其添加元素。
object myObject { def main(args: Array[String]) { val cars = collection.mutable.Map[String, String]() println(cars) println("Adding new elements to the map") cars += ("BMW" -> "Z4") println(cars) } }
输出:
HashMap() Adding new elements to the map HashMap(BMW -> Z4)