scala 之 Map ,Tuple 以及 Zip 操作
阿新 • • 發佈:2018-12-25
//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))
}
}
//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))
}
}