zoukankan      html  css  js  c++  java
  • Scala Map

    Python中的Dict

    字典是一组键(key)和值(value)的组合,通过键(key)进行查找, 没有顺序 , 使用大括号”{}” !key不允许重复 !key不可变,value可变

    Scala中的Map

    无序(有序看第7点),有可变和不可变两种,

    1.值不可变的Map(不常用)

    val info = Map("czm" -> 10, "CZM" -> 21)		//格式1
    val info = Map(("czm" , 10), ("CZM" , 21))		//格式2(更体现tuple作为存储单元)
    res0: scala.collection.immutable.Map[String,Int] = Map(czm -> 10, CZM -> 21)
    
    //修改值** + - **,并不是改
    info("czm") = 29			//错误
    info + ("czm" -> 100)		//这种方式只是生成了一个新的不可变的Map原值并未改变
    info - "czm"				//这种方式只是生成了一个新的不可变的Map原值并未改变
    

    2.值可变的Map

    val info = scala.collection.mutable.Map("czm" -> 10, "CZM" -> 21)		//格式1
    val info = scala.collection.mutable.Map(("czm" , 10), ("CZM" , 21))		//格式2(更体现tuple作为存储单元)
    res0: scala.collection.mutable.Map[String,Int] = Map(czm -> 10, CZM -> 21)
    
    //修改值** += -= **
    info("czm") = 29	//正确,若Key不存在,则增加
    //一次增加多个
    info += ("asd" -> 123,"aer" -> 122)
    //移除
    info -= "czm"
    info -= ("czm","asd")	//即使移除不存在的元素,不会报错
    

    3.创建空Map

    //HashMap是Map的实现类,不能直接实例化Map(抽象类)**跟JAVA一样**
    val info = scala.collection.mutable.HashMap[String,Int]()
    

    4.取值,使用()

    在取值的时候,访问一个不存在的Key会报错,JAVA 返回Null,Python dict也会报错

    //方法1
    if (info.contains("nukl")) info("nukl") else 0
    
    //方法2
    info.getOrElse("nukl",0)
    

    5.增,改

    //对于存在的Key,赋值即修改
    //对于不存在的Key,赋值即增加
    

    6.遍历

    //增强for循环
    for ((key, value) <- info) {
      println(key + ":" + value)
    }
    
    //只要Key,也可以用keySet
    for (key <- info.keys) {
      println(key + ":" + info(key))
    }
    
    //只要value
    for (value <- info.values) {
      println(value)
    }
    

    7.有序的Map

    //Map的另一个实现类SortedMap,根据Key排序
    var info = scala.collection.mutable.SortedMap("as" -> 12, "nSD" -> 23, "casd" -> 123)
    info: scala.collection.mutable.SortedMap[String,Int] = Map(as -> 12, casd -> 123, nSD -> 23)
    
    //Map的另一个实现类LinkedHashMap,记住插入的顺序
    var info = scala.collection.mutable.LinkedHashMap[String,Int]()
    
  • 相关阅读:
    Python3 文件
    Python 字典
    Python OS
    Python函数zip-map
    Python 3.5 filter
    python3.5.2库getpass
    JavaScript学习四
    cocos creator学习
    JavaScript学习三
    JavaScript学习3
  • 原文地址:https://www.cnblogs.com/cenzhongman/p/7454102.html
Copyright © 2011-2022 走看看