zoukankan      html  css  js  c++  java
  • scala学习之map和tuple

    Map

      //不可变的Map
      val scores = Map("Alice" -> 3, "lucy" -> 6, "Lily" -> 9)
    
      //可变的
      scala.collection.mutable.Map("Alice" -> 3, "lucy" -> 6, "Lily" -> 9)
    
      var map = new mutable.HashMap[String, Int]
      map += ("cindy" -> 5)
      println(map)
    
      //操作Map
      println(scores("Alice"))
      //如果映射中不包含 该键 会抛出异常
      //检查map中是否含有某个键 可以使用contains 方法
      val score = if (scores.contains("lucy")) scores("lucy") else 0
    
      //或者
      scores.getOrElse("lucy", 0)
    
      map("cindy") = 10 //更新cindy的值
      map("lilei") = 8 //增加新的映射
      //也可以这样
      map +=("Bob" -> 5, "Fred" -> 7)
    
      map -= "lilei"
      //移除键值对
      /**
       * 不能update不可以变的map,但是可以得到一个新的map
       */
    
      val newScores = scores +("Bob" -> 5, "Fred" -> 7)
    
      //也可以如此
      var scoreses = Map("Alice" -> 3, "lucy" -> 6, "Lily" -> 9)
      scoreses = scoreses +("Bob" -> 5, "Fred" -> 7)
      //从不可变Map中移除值
      scoreses = scoreses - "lucy"
      //迭代
      for ((name, num) <- scoreses) println("name :" + name + " socre:" + num)
      //返回key值set集合
      println(scoreses.keySet)
      //获取所有的value
      for (v <- scoreses.values) println(v)
      //反转map
      var reverSocres = for ((name, num) <- scoreses) yield (num, name)
      println(reverSocres)
    
      //不可变的TreeMap
      SortedMap("Alice" -> 3, "lucy" -> 6, "Lily" -> 9)
    tuple:

      //元组
      val t = (1,3.14,"scala")
      println(t._1)  //访问元组 从1开始
      val (first,second,third) = t //依次对first,second,third为1,3.14,"scala"
      val (f,s,_) = t //如果不需要全部的值可以如此写
    
      //zip 很像python中的zip函数
      val symbols = Array("<","-",">")
      val counts = Array(3,6,3)
      val pairs = symbols.zip(counts)
      for ((s,n) <- pairs) Console.print(s * n) //打印<<<------>>>





    用放荡不羁的心态过随遇而安的生活
  • 相关阅读:
    AC日记——接苹果 洛谷 P2690
    AC日记——友好城市 洛谷 P2782
    AC日记——栈 洛谷 P1044
    AC日记——L国的战斗之间谍 洛谷 P1916
    AC日记——[USACO1.1]坏掉的项链Broken Necklace 洛谷 P1203
    AC日记——[USACO1.5]数字三角形 Number Triangles 洛谷 P1216
    Codevs 1048 石子归并
    Codevs 1138 聪明的质监员 2011年NOIP全国联赛提高组
    HDU 1575 Tr A
    Codevs 5059 一起去打CS
  • 原文地址:https://www.cnblogs.com/re-myself/p/5532487.html
Copyright © 2011-2022 走看看