zoukankan      html  css  js  c++  java
  • scala (6) Map

    在scala中Map分为可变长(mutable)和不可变长(imtable)

         /**
          * 不可变长map 长度一旦初始化,就不能在进行更改
          */
        // 通过对偶元组的方式创建map
        val map = Map("name" -> "leo", "age" -> 16, "sex" -> "男")
    
        // 通过箭头的方式创建map
        val map1 = Map(("name", "jack"), ("age", 16), ("sex", "女"))
    
        // 通过两者混搭创建map
        val map3 = Map("name" -> "tuoni", ("name", "hengr"))
    
        // ++ 操作合并两个map 原map不变
        val newmap = map ++ map1
    
        println(map + "," + map1 + "," + map3 + "," + newmap)
       /**
          * 不可变长Map映射,长度,值一旦初始化后不能再次被改变
          */
        val map4 = mutable.Map("a" -> "A")
        map4.put("b", "B")
        map4 += ("c" -> "C", "d" -> "D")
        map4 ++= mutable.Map("hah" -> "HAH", ("a", "b"))
        // 移除Map映射,mutable 包下
        println(map4)
        map4 -= ("b", "B")
        map4 --= Set("a", "b")
        map4.remove("c")
        println(map4)
    
        // Map(b -> B, hah -> HAH, d -> D, a -> b, c -> C)
        // Map(hah -> HAH, d -> D)
    /**
          * map映射常用操作方法
          */
        // contains 方法判断一个key 是否存在,存在返回true,否则返回false
        val map = mutable.Map("b" -> "B", "hah" -> "HAH", "d" -> "D", "a" -> "b", "c" -> "C")
        println(map.contains("b"))
    
        //获取key对应的值,注意如果通过 Map(“key”)获取对应的值应该进行key是否存在判断
        if (map.contains("e")) {
          println(map("e"))
        }
        // 映射的get 方法也是用来获取key 对应的值,但是这个方法返回的是一个option对象,这个option
        // 对象有两个子类,如果有key 则返回Some(some对象中封装了key对应的值,可以通过some的get
        // 方法获取该值)对象。
        // 没有key则返回None对象
    
        val value: Option[String] = map.get("a")
        //isEmpty方法可以用来判断是Some对象还是None
        if (!value.isEmpty) {
          println(value)
        } else {
          println(value)
        }
      // 如果key 存在则返回对应的值,如果key不存在则返回给定的值
      val v1 = map.getOrElse("f","EEE")
      println(v1)
    
    
    /**
          * LinkedHashMap 插入有序,会按照我们的插入顺序排序,因为底层是链表结构
          */
        val map5 = mutable.LinkedHashMap[String, String]()
        map5 += ("d" -> "D")
        map5 += (("a", "A"))
        map5("c") = "C"
        map5("b") = "B"
        println(map5)
    
        /**
          * SortedMap 可以自动对Map的key进行排序
          */
        val map6 = mutable.SortedMap[String, String]()
        map6("c") = "C"
        map6("b") = "B"
        map6("a") = "A"
        println(map6)
  • 相关阅读:
    【转】C++笔试题汇总
    【转】c++笔试题
    【M21】利用重载技术避免隐式类型转换
    【M6】区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
    【M7】千万不要重载&&,||和,操作符
    【M22】考虑以操作符复合形式(op=)取代其独身形式(op)
    String类的实现
    理解 strcpy方法
    多线程笔试
    mysql中all privileges包含哪些权限
  • 原文地址:https://www.cnblogs.com/mlfh1234/p/9240305.html
Copyright © 2011-2022 走看看