1. 程式人生 > >scala 之 Map ,Tuple 以及 Zip 操作

scala 之 Map ,Tuple 以及 Zip 操作

//Map 本身是對映,在生活中應用也非常廣泛
//Tuple 也是scala中非常重要的資料結構,我們使用tuple可以把很多型別不一樣的元素組成一個集合
//Zip 把兩個集合中的元素結合
object Map_Tuple {
  def main(args: Array[String]): Unit = {
    val map = Map("book"->10,"gun"->18,"ipad"->1000)  // 預設的情況下是不可變得Map 即:immutable.Map
    for((k,v) <- map) yield (k,v *0.9)                //把Map中三個元素分別對映到 k,v
   
    // 下面是可變的Map
    val scres = scala.collection.mutable.Map("scala"->7, "Hadoop" ->8,"Spark"->10)
    val hadoopScore = scres.getOrElse("Hadoop", 0)   //getOrElse() 如果沒有“Hadoop” 就會返回 0,如果有就返回Hadoop的鍵值 8
    scres += ("R" ->9)                               //增加鍵值對                    
    scres -="Hadoop"                                 //刪除鍵值對
    val sortedScore = scala.collection.immutable.SortedMap("scala"->7, "Hadoop" ->8,"Spark"->10) //對詞典進行排序
   
    // 元組操作
    val tuple = (1,2,3.14,"Rocky","spark")   //可以把不同的型別作為集合的記錄
    val third = tuple._3                    //返回第三個元素
     //println (third)
    val (first, second, thirda, fourth, fifth) = tuple  // 可以tuple元組的值賦值給元組,他們分別對應比如:first 對應 1 。。。。。
    val (f,s,_,_,_) = tuple                            //如果我們不需要這麼多值可以用下劃線_做為佔位符, 但佔位符是必要的
     println(s)
   
   
    // Zip操作
    val symbols = Array("[","-","]")              //> symbols  : Array[String] = Array([, -, ])
    val counts = Array(2,5,2)                     //> counts  : Array[Int] = Array(2, 5, 2)
    val pairs = symbols.zip(counts)               //> pairs  : Array[(String, Int)] = Array(([,2), (-,5), (],2))
   
   
   
  }
 
}