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) //打印<<<------>>>





    用放荡不羁的心态过随遇而安的生活
  • 相关阅读:
    20.11.16 leetcode406 leetcode中的排序写法
    20.11.15 leetcode402
    20.11.14 leetcode1122(自定义排序)
    polyline NOIP模拟 数论 规律
    alien NOIP模拟 位运算 数论
    跳石头 vijos1981 NOIP2015 D2T1 二分答案 模拟 贪心
    寻找道路 vijos1909 NOIP2014 D2T2 SPFA
    不死的LYM NOIP模拟 二分+状压DP
    死亡的颂唱者 NOIP模拟 贪心 DFS
    无线网络发射器选址 vijos 1908 NOIP2014 D2T1 模拟
  • 原文地址:https://www.cnblogs.com/re-myself/p/5532487.html
Copyright © 2011-2022 走看看