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を参照してください
Process finished with exit code 0
詳細については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