Scala 中的映射

Scala 映射

映射是将其元素存储为键值对(例如字典)的集合。同样,称为哈希表的映射具有唯一的键,这些键用于检索与键有关的值。

map可以有两种:

可变和不可变,对于不可变变量,初始化后不能在程序中更改对象。默认情况下,映射是不可变的,要使用可变映射,您必须使用scala.collection.mutable.Map类。

创建一个Scala映射

定义可变和不可变的Scala映射有不同的语法,

创建不可变映射的语法:

map_name = Map(key_1 -> value_1, key_2 -> value_2, key_3 -> value_3)

创建可变映射的语法:

map_name = Scala.collection.mutable.Map
            (key_1 -> value_1, key_2 -> value_2, key_3 -> value_3)

映射操作

对于Scala中map,Scalamap上有三个基本操作

  1. keys:为map的所有键返回一个可迭代的。语法:map_name.keys

  2. values:返回map所有值的可迭代值。语法:map_name.values

  3. isEmpty:如果映射为空,则返回true,否则返回false。

在map上应用的其他一些重要方法...

1)创建一个空映射

Scala编程语言允许您创建一个不包含任何值对的空映射。根据用户要求,可以向其中添加新元素。

语法:

var map_name = scala.collection.mutable.Map[datatype1 , datatype2]()

示例

object MyClass {
      def main(args: Array[String]) {
         var map = scala.collection.mutable.Map[Int, String]()
         println("The map created = "+map)
      }
   }

输出结果

The map created = Map()

2)向数组添加值

在Scala映射中,有一个选项可以添加新的键值对。+ =运算符用于向数组添加新值。

语法:

var map_name += (key1 , value1)

示例

object MyClass {
      def main(args: Array[String]) {
         var map = scala.collection.mutable.Map[Int, String]()
         map += (1->"Akash")
         map += (2->"Ram", 3->"Kiran") // adding multiple values.
         println("The map created = "+map)
      }
   }

输出结果

The map created = Map(2 -> Ram, 1 -> Akash, 3 -> Kiran)

3)更改Scala映射的值

默认情况下,Scala映射的值无法更改,因为默认情况下它是不可变的。但是您可以更改可变的Scala映射的值。使用其键并分配新值。

语法:

map_name.(key) = value

示例

object MyClass {
      def main(args: Array[String]) {
         var map = scala.collection.mutable.Map[Int, String]()
         map += (1->"Akash")
         // adding multiple values.
         map += (2->"Ram", 3->"Kiran") 
         println("The map created = "+map)
         map(2) = "Raju"
         println("The map after updating values = "+map)
      }
   }

输出结果

The map created = Map(2 -> Ram, 1 -> Akash, 3 -> Kiran)
The map after updating values = Map(2 -> Raju, 1 -> Akash, 3 -> Kiran)

4)访问映射的任何特定值

Scala映射的任何值都可以使用其对应的键进行访问。

语法:

map_name.(key)