Scala中的Map、Tuple、Zip
Map:k,v鍵值對,跟java裡的Map差不多的意思。
定義一個Map有以下幾種方式:
val map = Map("book"->10,"gun"->18,"ipad"->1000)
val scores = scala.collection.mutable.Map("Scala" -> 7, "Hadoop" -> 8, "Spark" -> 10 )//可變的Map
val sortedScore = scala.collection.immutable.SortedMap("Scala" -> 7, "Hadoop" -> 8, "Spark" -> 10 )//按照key排序
Map增加、刪除鍵值對:
scores += ("R" -> 9)//新增元素
scores -= "Hadoop"//刪除元素
Map的取值:
val hadoopScore = scores.getOrElse("Hadoop", 0)
Map的遍歷:
for((k,v) <- map) yield (k,v * 0.9)
如果只想取key,可以使用如下方式:
for((k,_) <- map){ //placeholder
println("Key is " + k)
}
Tuple:scala裡比較特殊的一種資料結構,它允許不同型別的資料放在一起,形成一個元組。
譬如,有些方法一次返回好幾個型別不同的value。再如,Map的一個(k, v)也就是一個Tuple
Tuple的定義:
val tuple =(1,2,3.14,"Rocky","Spark","Flink")
Tuple的取值:
val third = tuple._1//和陣列不同的是,下標從1開始。還能tuple _3這種方式訪問,不過不建議
Tuple其它操作:
val (first,second,thirda,fourth,fifth,sixth) = tuple//將tuple賦值給另一個tuple
val (f, s, _, _, _,_) = tuple//對於不想要的值,可以使用佔位符
"Rocky Spark".partition(_.isUpper)//partition返回一個tuple:(String, String) = (RS,ocky park)
Zip:講兩個Array的資料合併起來,形成一個大Array,新的Array元素是一個個的Tuple
val symbols = Array("[", "-", "]")
val counts = Array(2,5,2)
val pairs = symbols.zip(counts)
結果:Array[(String, Int)] = Array(([,2), (-,5), (],2))
for ((x,y) <- pairs) print(x*y)
結果:[[-----]]
定義一個Map有以下幾種方式:
val map = Map("book"->10,"gun"->18,"ipad"->1000)
val scores = scala.collection.mutable.Map("Scala" -> 7, "Hadoop" -> 8, "Spark" -> 10 )//可變的Map
val sortedScore = scala.collection.immutable.SortedMap("Scala" -> 7, "Hadoop" -> 8, "Spark" -> 10 )//按照key排序
Map增加、刪除鍵值對:
scores += ("R" -> 9)//新增元素
scores -= "Hadoop"//刪除元素
Map的取值:
val hadoopScore = scores.getOrElse("Hadoop", 0)
Map的遍歷:
for((k,v) <- map) yield (k,v * 0.9)
如果只想取key,可以使用如下方式:
for((k,_) <- map){ //placeholder
println("Key is " + k)
}
Tuple:scala裡比較特殊的一種資料結構,它允許不同型別的資料放在一起,形成一個元組。
譬如,有些方法一次返回好幾個型別不同的value。再如,Map的一個(k, v)也就是一個Tuple
Tuple的定義:
val tuple =(1,2,3.14,"Rocky","Spark","Flink")
Tuple的取值:
val third = tuple._1//和陣列不同的是,下標從1開始。還能tuple _3這種方式訪問,不過不建議
Tuple其它操作:
val (first,second,thirda,fourth,fifth,sixth) = tuple//將tuple賦值給另一個tuple
val (f, s, _, _, _,_) = tuple//對於不想要的值,可以使用佔位符
"Rocky Spark".partition(_.isUpper)//partition返回一個tuple:(String, String) = (RS,ocky park)
Zip:講兩個Array的資料合併起來,形成一個大Array,新的Array元素是一個個的Tuple
val symbols = Array("[", "-", "]")
val counts = Array(2,5,2)
val pairs = symbols.zip(counts)
結果:Array[(String, Int)] = Array(([,2), (-,5), (],2))
for ((x,y) <- pairs) print(x*y)
結果:[[-----]]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1825692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Scala—— Set、Map、Tuple、佇列操作實戰佇列
- Scala與Java差異(五)之Map與TupleJava
- Scala 片段3:列表的map,flatMap,zip和reduce
- Scala操作Map
- Scala學習1.2 Scala中Array Map等資料結構實戰資料結構
- 【Scala篇】--Scala中集合陣列,list,set,map,元祖陣列
- Python中的tuplePython
- scala常用操作-Tuple元祖轉換成String字串字串
- lambda map filter reduce zip 以及列表推導Filter
- C♯ 7 中的 Tuple 特性
- Java,Pyhon,Scala比較(一)map,reduceJava
- 【Scala篇】--Scala中的函式函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- Python學習筆記 - filter,map,reduce,zipPython筆記Filter
- Scala學習(五)---Scala中的類
- Java 中的map - The Map Interface.Java
- python中的list、tuple和dictionaryPython
- scala中:: , +:, :+, :::, +++的區別
- scala中的TraitAI
- Go中的MapGo
- C++11::遍歷tuple中的元素C++
- Scala中apply的用法APP
- Scala 中的集合(四):CanBuildFromUI
- python常用函式進階(2)之map,filter,reduce,zipPython函式Filter
- java中的Map集合Java
- java中Map根據Map的value取keyJava
- python 切片獲取list、tuple中的元素Python
- python中zip()函式的用法Python函式
- python中zip和format的使用PythonORM
- Python 進階之路 (五) map, filter, reduce, zip 一網打盡PythonFilter
- Scala中的包以及包物件物件
- Java zip解壓,並遍歷zip中的配置檔案 .cfg或.propertiesJava
- javascript中的Map和SetJavaScript
- scala中的匿名子類實現
- scala 在vim中的語法高亮
- php 建立壓縮包zip,並將指定檔案放入zip中PHP
- 詳解object detection中的mAPObject
- GO 中 map 的實現原理Go