zoukankan      html  css  js  c++  java
  • scala map的常用操作

     1 package cn.scala_base
     2 
     3 /**
     4  *  map常用操作
     5  */
     6 object Map {
     7   
     8   def main(args: Array[String]): Unit = {
     9     
    10     //1.不可变map(有序)
    11     val map1 = scala.collection.immutable.Map("wyc"->30,"tele"->20,"yeye"->100,"haha"->1000);
    12     println(map1("wyc"));
    13     println("map1---" + map1);
    14     
    15     //error
    16    // map1("wyc")=100;
    17 
    18     
    19     
    20     //2. 可变map
    21     val map2 = scala.collection.mutable.Map("wyc"->30,"tele"->20,"yeye"->100);
    22     map2("wyc")=10000;
    23     println(map2("wyc"));
    24     
    25     
    26     val map3 = scala.collection.mutable.Map(("wyc",100),("tele",1000),("yeye",10000));
    27     println(map3("wyc"));
    28     
    29     
    30     //3.创建HashMap(无序)
    31     val hashMap = new scala.collection.mutable.HashMap[String,Int];
    32     
    33     
    34     //为map增加元素
    35     hashMap += ("wyc"->1);
    36     println(hashMap("wyc"))
    37     
    38     
    39     //移除元素
    40     hashMap -= "wyc";
    41 
    42     
    43     //检查key是否存在
    44     if(hashMap.contains("wyc")) println(hashMap("wyc")) else println(0);
    45 
    46     //使用getOrElse进行检查
    47     println(hashMap.getOrElse("wyc","不存在"));
    48     
    49     
    50     //根据key进行排序的SortedMap,注意是immutable
    51     val sortedMap = scala.collection.immutable.SortedMap("wyc"->100,"tele"->1000);
    52     println("sortedMap----" + sortedMap);
    53     
    54     
    55     //有序的LinkedHashMap
    56     val linkedHashMap = scala.collection.mutable.LinkedHashMap("wyc"->100,"tele"->1000);
    57     println("linkedHashMap----" + linkedHashMap);
    58     
    59     
    60     
    61     
    62     //对于不可变的map1进行更新,其实是返回新的不可变map
    63     val mapX = map1 + ("newEntry"->1);
    64     val mapY = map1 - "wyc";
    65     
    66     
    67     //遍历Map
    68     for((key,value)<- map3) {
    69       println(key + ":" + value);
    70     }
    71     
    72     for(key <- map3.keySet) {
    73       println(key + ":" + map3(key));
    74     }
    75     
    76     //只遍历values
    77     /*for(value<-map3.values) {
    78       println(value);
    79     }*/
    80     
    81     
    82     //反转key与value
    83     val reverseMap = for((key,value)<-map3) yield (value,key);
    84     for(key<- reverseMap.keySet) {
    85       println(key + ":" + reverseMap(key));
    86     }
    87     
    88   }
    89   
    90   
    91 }
  • 相关阅读:
    Eclipse/MyEclipse 选择Android NDK目录时提示“Not a valid NDK directory”
    Eclipse更改颜色主题
    Android模拟器访问本机服务器
    DIV水平垂直居中的CSS兼容写法
    Python3中使用PyMySQL连接Mysql
    Windows7 IE11 F12控制台DOC资源管理器报错的问题解决方法
    Windows 7无法卸载及安装IE11的解决方法
    查看端口占用
    VS2010/VS2013中ashx代码折叠的问题
    手机页面关于头部固定定位与input出现的问题
  • 原文地址:https://www.cnblogs.com/tele-share/p/10032796.html
Copyright © 2011-2022 走看看