ScalaのMapコレクション:keyは一意でなければなりません

8986 ワード

Map(マッピング)は反復可能なキー値対(key/value)構造である.すべての値はキーで取得できます.Mapのキーはすべてユニークです.Mapはハッシュテーブル(Hash tables)とも呼ばれます.Mapには2つのタイプがあり、可変オブジェクトは変更できますが、可変オブジェクトは変更できません.既定ではScalaは可変Mapを使用します.可変コレクションを使用する必要がある場合は、import scala.collection.mutable.Mapクラスを明示的に導入する必要があります.Scalaでは、可変と可変のMapを同時に使用することができ、可変ではなく直接Mapを使用し、可変ではmutable.Mapを使用することができます.
詳細についてはAPIを参照してください
package com.fuyun.bigdata.scala.collection

object MapDemo {

  def main(args: Array[String]): Unit = {
    //   Java  Map    
    import java.util
    val hashMap: util.HashMap[String, Int] = new util.HashMap[String, Int]()
    hashMap.put("spark", 1243)
    hashMap.put("hive", 233)
    hashMap.put("scala", 999)
    hashMap.put("python", 233333)
    hashMap.put("hadoop", 3222)
    hashMap.put("spark", 333) //      key spark  ,  Map key    

    // TODO:  Java  HashMap     Scala  Map      
    // ._        
    import scala.collection.JavaConverters._
    val map: scala.collection.mutable.Map[String, Int] = hashMap.asScala //     
    map.foreach(println(_))

    val map1 = Map("python" -> 2, "scala" -> 5, "spark" -> 6)
    val map2 = Map()
    //   Map  key
    println("map1 keys is : " + map1.keys)
    //   Map  values
    println(s"map1 values is : ${map1.values}")
    //   Map    
    println(s"map1 is empty : ${map1.isEmpty}")
    println("map2 is empty : " + map2.isEmpty)

    //      ++      Map.++()         Map,   Map        key,
    //      Map    value        Map      
    val maps = map ++ map1
    println(s"map ++ map1 is : ${maps.mkString(", ")}")

    val maps1 = map.++(map1)
    println(s"map.++(map1) is : ${maps1}")

    //   Map       key
    println(s"hive is contains map key ? false or true : ${map.contains("hive")}")

    //     key value
    println(s"hive -> ${map.get("hive")}")
  }

}

実行結果:(hive,233)(python,233333)(spark,333)(scala,999)(hadoop,3222)map 1 keys is:Set(python,scala,spark)map 1 values is:MapLike(2,5,6)map 1 is empty:false map 2 is empty:true map+map 1 is:hive->233,python->2,spark->6,scala->5,hadoop->5,hadoop->5 3222 map.+(map 1)is:Map(hive -> 233, python -> 2, spark -> 6, scala -> 5, hadoop -> 3222) hive is contains map key ? false or true : true hive -> Some(233)
Process finished with exit code 0