Scala-2(Map与Tuple)

匿名 (未验证) 提交于 2019-12-03 00:26:01
  1. 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)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!