scala-16-Map

作者: chen_666 | 来源:发表于2020-04-06 18:13 被阅读0次
    object MapDemo01 {
      def main(args: Array[String]): Unit = {
    
        //方式1-构造不可变映射
        //1.默认Map是 immutable.Map
        //2.key-value 类型支持Any
        //3.在Map的底层,每对key-value是Tuple2
        //4.从输出的结果看到,输出顺序和声明顺序一致
        val map1 = Map("Alice" -> 10, "Bob" -> 20, "Kotlin" -> "北京")
        println(map1)
    
    
        //方式2-构造可变映射
        //1.从输出的结果看到,可变的map输出顺序和声明顺序不一致
        val map2 = mutable.Map("Alice" -> 10, "Bob" -> 20, "Kotlin" -> "北京")
        println(map2)
    
        //方式3-创建空的映射
    
        val map3 = new scala.collection.mutable.HashMap[String, Int]
        println("map3=" + map3)
    
        //方式4-对偶元组
        val map4 = mutable.Map(("Alice", 10), ("Bob", 20), ("Kotlin", "北京"))
        println("map4=" + map4)
    
    
        //方式1-使用map(key)
        println(map4("Alice")) // 10
        //抛出异常(java.util.NoSuchElementException: key not found:)
        //println(map4("Alice~"))
    
        //方式2-使用contains方法检查是否存在key
        if (map4.contains("Alice")) {
          println("key存在,值=" + map4("Alice"))
        } else {
          println("key不存在:)")
        }
    
        //方式3 方式3-使用map.get(key).get取值
        //1. 如果key存在 map.get(key) 就会返回Some(值)  ,然后Some(值).get就可以取出
        //2. 如果key不存在 map.get(key) 就会返回None
    
        println(map4.get("Alice").get)
        //println(map4.get("Alice~").get)  // 抛出异常
    
        //方式4-使用map4.getOrElse()取值
        println(map4.getOrElse("Alice~~~", "默认的值 鱼 <・)))><<"))
    
    
        val map5 = mutable.Map(("A", 1), ("B", "北京"), ("C", 3))
        map5("A") = 20 //增加
        println("map5=" + map5)
    
        map5 += ("A" -> 100)
        println("map5=" + map5)
    
        map5 -= ("A", "B", "AAA") //
        println("map5=" + map5)
    
        //map的遍历
        val map6 = mutable.Map(("A", 1), ("B", "北京"), ("C", 3))
        println("----(k, v) <- map6--------")
        for ((k, v) <- map6) println(k + " is mapped to " + v)
    
        println("----v <- map6.keys--------")
        for (v <- map6.keys) println(v)
        println("----v <- map6.values--------")
        for (v <- map6.values) println(v)
    
        //这样取出方式 v 类型是 Tuple2
        println("----v <- map6--------")
        for (v <- map6) println(v + " key =" + v._1 + " val=" + v._2) //v是Tuple?
      }
    }
    

    相关文章

      网友评论

        本文标题:scala-16-Map

        本文链接:https://www.haomeiwen.com/subject/cvnbphtx.html