Map:一键值对存在的一种数据结构,创建Map的时候默认长度是不可变的
package com.lyz import scala.collection.{SortedMap, mutable} import scala.collection.mutable.Map /** * 类的注释 * * @Package com.lyz * @ClassName MapAndTuple * @Description ${TODO} * @Author liyuzhi * @Date 2018-06-08 19:08 */ object MapAndTuple { def main(args: Array[String]): Unit = { //immutableMap //mutableMap hashMap } //可变的Map private def hashMap = { /** * 初始化HashMap */ val hashMap = new mutable.HashMap[String, Int]() hashMap.put("zhangsan", 21) hashMap.put("lisi", 22) hashMap.put("wangwu", 23) hashMap.put("zhaoliu", 24) /** * 获取Map值 */ println(hashMap("zhangsan")) //如果键不存在会什么也不返回直接报错 println(hashMap.get("aaaa")) //如果键不存在会返回None,打印结果为:None,如果存在那么返回值类型为Option,然后我们需要调用get方法获取值 println(hashMap.getOrElse("aaaa", 0)) //如果键不存在就返回0,如果存在就会返回键对应的值 /** * 更新Map元素 */ hashMap("zhangsan") = 31 /** * 增加Map元素 */ hashMap += ("abc" -> 20, "bcd" -> 22) /** * 移除元素 */ hashMap -= ("zhangsan", "aaaaa") hashMap.remove("zhangsan") /** * 遍历Map */ for (elem <- hashMap) { println(elem._1, elem._2) } //遍历Key for (elem <- hashMap.keySet) { println(elem) } //遍历value for (elem <- hashMap.values) { println(elem) } } //可变Map private def mutableMap = { /** * 初始化 scala.collection.mutable.Map */ //scala.collection.mutable.Map[String,Int] Map是可变的数据结构,所以我们再次给已存在的键赋值就不会报错 val ageMuttableMap = scala.collection.mutable.Map("zhangsan" -> 21, "lisi" -> 22, "wangwu" -> 23, "zhaoliu" -> 24) ageMuttableMap("zhangsan") = 31 /** * 获取Map值 */ println(ageMuttableMap("zhangsan")) //如果键不存在会什么也不返回直接报错 println(ageMuttableMap.get("zhangsan")) //如果键不存在会返回None,打印结果为:None,如果存在那么返回值类型为Option,然后我们需要调用get方法获取值 println(ageMuttableMap.getOrElse("aaaaa", 0)) //如果键不存在就返回0,如果存在就会返回键对应的值 /** * 更新Map元素 */ ageMuttableMap("zhangsan") = 31 /** * 增加Map元素 */ ageMuttableMap += ("abc" -> 20, "bcd" -> 22) /** * 移除元素 */ ageMuttableMap -= ("zhangsan", "aaaaa") /** * 遍历Map */ for (elem <- ageMuttableMap) { println(elem._1, elem._2) } //遍历Key for (elem <- ageMuttableMap.keySet) { println(elem) } //遍历value for (elem <- ageMuttableMap.values) { println(elem) } } //不可变Map private def immutableMap = { /** * 初始化 scala.collection.immutable.Map[String,Int] */ //scala.collection.immutable.Map[String,Int] Map是不可变的数据结构,所以我们再次给已存在的键赋值就会报错 val age = scala.collection.immutable.Map("zhangsan" -> 21, "lisi" -> 22, "wangwu" -> 23, "zhaoliu" -> 24) //自动对键排序的Map val ageSortedMap = scala.collection.immutable.SortedMap("zhangsan" -> 21, "lisi" -> 22, "wangwu" -> 23, "zhaoliu" -> 24) /** * 获取Map值 */ println(age("zhangsan")) //如果键不存在会什么也不返回直接报错 println(age.get("zhangsan")) //如果键不存在会返回None,打印结果为:None,如果存在那么返回值类型为Option,然后我们需要调用get方法获取值 println(age.getOrElse("aaaaa", 0)) //如果键不存在就返回0,如果存在就会返回键对应的值 /** * 更新Map元素 */ //age("zhangsan") = 31 //报错 age + ("abc" -> 20, "bcd" -> 22) //更新不可变Map的Api /** * 不可变Map移除元素 */ age - ("abc", "zhangsan") /** * 遍历Map */ for (elem <- age) { println(elem._1, elem._2) } //遍历Key for (elem <- age.keySet) { println(elem) } //遍历value for (elem <- age.values) { println(elem) } } }
转载请标明出处:Scala-2(Map与Tuple)
文章来源: Scala-2(Map与Tuple)