一緒にscala-Marp&Tupleを学びます

2772 ワード

Map(マッピング)は反復可能なキー値対の集合である.scalaでのマッピングの使用は非常に簡単です.
構築Map
//inmutable Map(     ,    )
//      
//  scala ->              。
val inmutableMap = Map(("yoleen" -> 20), ("hq", 26))
//       ,       Map    。                  。
val stringToInt = new scala.collection.immutable.HashMap[String, Int]
//mutable Map(    ,  、  、        )
val mutableMap: mutable.Map[String, Int] = scala.collection.mutable.Map(("yoleen" -> 20), ("hq", 26))
//      
val stringToInt = new scala.collection.mutable.HashMap[String, Int]
//         new

マッピングの値の取得
val mutableMap: mutable.Map[String, Int] = scala.collection.mutable.Map(("yoleen" -> 20), ("hq", 26))
val v: Option[Int] = mutableMap.get("yoleen") //  key      some  ,        。       None
val v1: Int = mutableMap("yoleen")//   apply     ,   option  。
val v2: Int = mutableMap.getOrElse("yoleen", 10)//  key         
val v3: Int = mutableMap.getOrElseUpdate("yoleen1",op(5,6))//  key                   。

マッピングの値の追加&更新
val mutableMap: mutable.Map[String, Int] = scala.collection.mutable.HashMap[String,Int]
    mutableMap+=("yoleen"->10)
    mutableMap+=("yoletpig"->10,"alex"->20) //       
    mutableMap++=mutable.Map(("tony" -> 20), ("jskon", 26)) //             。
    mutableMap.put("kudu",6)//       
    mutableMap("yoleen") = 20//   
    mutableMap.transform((s, i) => i * 2)//          *2  

キー値ペアの削除
mutableMap-="yoleen" 
mutableMap-=("yoletpig","jskon") //       
val option: Option[Int] = mutableMap.remove("kudu") //       option  
mutableMap.retain((s,i)=>s.startsWith("y") && i>=10) //     "y"         10    
mutableMap.clear()//       

反復マッピング
for (elem 

その他のマッピング
よく使われるHashMapのほか、SortMap、LinkedHashMap、TreeMapなどがあります.
  • SortMapは、マッピング中のキーに順次アクセスする.
  • LinkedHashMapは挿入順にアクセスします.
  • TreeMapキーを押して並べ替えます.Javaと相互運用する必要がある場合は、暗黙的な変換を追加すればいいです.
  • import scala.collection.JavaConversions.mapAsScalaMap
    

    タプル(Tuple)
    メタグループの値は、単一の値を()に含めることで構成されます.例:
    (1,3.14,"hello") //    
    val t = (1,3.14,"hello")
    //      ._1 ._2         
    val a = t._1 // 1
    val b = t._2 // 3.14
    //  ,      1  。
    //                 。
    val (first,_,third) = t
    // first=1,third="hello"
    

    ユニットのファスナー操作
    val sy = Array("")
    val cnt = Array(2,3,2)
    val pairs = sy.zip(cnt) //Array(("",2))
    for((s,n)>
    

    コードワードは簡単ではありませんが、好きな面倒な点でお勧めします.