网站建设的缺陷,如何验证网站,建造师职业人才网平台,厦门网站建设的公司Scala—Map用法详解
在 Scala 中#xff0c;Map 是一种键值对的集合#xff0c;其中每个键都是唯一的。Scala 提供了两种类型的 Map#xff1a;不可变 Map 和可变 Map。 1. 不可变集合#xff08;Map#xff09;
不可变 Map 是默认的 Map 实现#xff0c;位于 scala.co…Scala—Map用法详解
在 Scala 中Map 是一种键值对的集合其中每个键都是唯一的。Scala 提供了两种类型的 Map不可变 Map 和可变 Map。 1. 不可变集合Map
不可变 Map 是默认的 Map 实现位于 scala.collection.immutable 包中。一旦创建不可变 Map 的内容不能被修改但可以通过操作返回新的 Map。
// 创建一个空的 Map
val emptyMap: Map[String, Int] Map()// 创建一个包含初始键值对的 Map
val map1: Map[String, Int] Map(one - 1, two - 2, three - 3)常见操作
添加键值对 添加一个键值对添加多个键值对 val newMap1 map1 (four - 4) // 添加一个键值对
val newMap2 map1 Map(four - 4, five - 5) // 添加多个键值对删除键值对 -删除一个键值对--删除多个键值对 val newMap3 map1 - one // 删除一个键值对
val newMap4 map1 -- List(one, two) // 删除多个键值对检查键是否存在 contains检查是否包含某个键 val containsOne map1.contains(one) // 结果: true获取值 apply通过键获取值get通过键获取值返回 Option 类型getOrElse通过键获取值如果不存在则返回默认值 val valueOfOne map1(one) // 获取键 one 对应的值
val optionValueOfOne map1.get(one) // 获取键 one 对应的值返回 Option
val defaultValue map1.getOrElse(six, 0) // 获取键 six 对应的值如果不存在则返回 0遍历键值对 foreach遍历所有键值对keys获取所有键values获取所有值map映射所有键值对filter过滤键值对 map1.foreach { case (key, value) println(s$key - $value) } // 遍历并打印所有键值对val keys map1.keys // 获取所有键
val values map1.values // 获取所有值val mappedMap map1.map { case (key, value) (key, value * 2) } // 映射所有键值对
println(mappedMap.mkString(, )) // 输出: one - 2, two - 4, three - 6val filteredMap map1.filter { case (key, value) value 1 } // 过滤值大于 1 的键值对
println(filteredMap.mkString(, )) // 输出: two - 2, three - 3转换操作 toList转换为 ListtoArray转换为数组 val list map1.toList // 转换为 List
val array map1.toArray // 转换为数组2. 可变集合mutable.Map
可变 Map 位于 scala.collection.mutable 包中可以动态地添加和删除键值对。
import scala.collection.mutable.Map// 创建一个空的 Map
val emptyMap: Map[String, Int] Map()// 创建一个包含初始键值对的 Map
val map1: Map[String, Int] Map(one - 1, two - 2, three - 3)常见操作
添加键值对 添加一个键值对添加多个键值对 map1 (four - 4) // 添加一个键值对
map1 Map(five - 5, six - 6) // 添加多个键值对删除键值对 -删除一个键值对--删除多个键值对 map1 - one // 删除一个键值对
map1 -- List(two, three) // 删除多个键值对检查键是否存在 contains检查是否包含某个键 val containsOne map1.contains(one) // 结果: false获取值 apply通过键获取值get通过键获取值返回 Option 类型getOrElse通过键获取值如果不存在则返回默认值 val valueOfFour map1(four) // 获取键 four 对应的值
val optionValueOfFour map1.get(four) // 获取键 four 对应的值返回 Option
val defaultValue map1.getOrElse(seven, 0) // 获取键 seven 对应的值如果不存在则返回 0遍历键值对 foreach遍历所有键值对keys获取所有键values获取所有值map映射所有键值对filter过滤键值对 map1.foreach { case (key, value) println(s$key - $value) } // 遍历并打印所有键值对val keys map1.keys // 获取所有键
val values map1.values // 获取所有值val mappedMap map1.map { case (key, value) (key, value * 2) } // 映射所有键值对
println(mappedMap.mkString(, )) // 输出: four - 8, five - 10, six - 12val filteredMap map1.filter { case (key, value) value 4 } // 过滤值大于 4 的键值对
println(filteredMap.mkString(, )) // 输出: five - 5, six - 6转换操作 toList转换为 ListtoArray转换为数组 val list map1.toList // 转换为 List
val array map1.toArray // 转换为数组