Scala中的Map使用例子
生活随笔
收集整理的這篇文章主要介紹了
Scala中的Map使用例子
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Map結(jié)構(gòu)是一種非常常見的結(jié)構(gòu),在各種程序語言都有對應(yīng)的api,由于Spark的底層語言是Scala,所以有必要來了解下Scala中的Map使用方法。
(1)不可變Map
特點:
api不太豐富
如果是var修飾,引用可變,支持讀寫
如果是val修飾,引用不可變,只能寫入一次值,其后只讀
var a:Map[String,Int]=Map("k1"->1,"k2"->2)//初始化構(gòu)造函數(shù)a += ("k3"->3)//添加元素a += ("k4"->4)//添加元素a += ("k1"->100)//已經(jīng)存在添加元素會覆蓋a -= ("k2","k1")//刪除元素 // a("k1") = "foo"//不支持println(a.contains("k6"))//是否包含某元素println(a.size)//打印大小println(a.get("k1").getOrElse("default")) //根據(jù)key讀取元素,不存在就替換成默認(rèn)值a.foreach{case (e,i) => println(e,i)} //遍歷打印1for( (k,v)<-a ) println(k,v) //遍歷打印2println(a.isEmpty)//判斷是否為空a.keys.foreach(println)//只打印keya.values.foreach(println)//只打印valuea=Map()//數(shù)據(jù)清空使用再次new println(a.size)a.toSeq.sortBy(_._1)//升序排序 keya.toSeq.sortBy(_._2)//升序排序 valuea.toSeq.sortWith(_._1>_._1) //降序排序 keya.toSeq.sortWith(_._2>_._2) //降序排序 value//下面自定義按英文字母或數(shù)字排序implicit val KeyOrdering=new Ordering[String] {override def compare(x: String, y: String): Int = {x.compareTo(y)}}println(a.toSeq.sorted)(2)可變Map例子
特點:
api豐富與Java中Map基本類似
如果是var修飾,引用可變,支持讀寫
如果是val修飾,引用不可變,支持讀寫
def map3(): Unit ={//不可變Map+var關(guān)鍵詞修飾例子var a:scala.collection.mutable.Map[String,Int]=scala.collection.mutable.Map("k1"->1,"k2"->2)//初始化構(gòu)造函數(shù)a += ("k3"->3)//添加元素a += ("k4"->4)//添加元素a += ("k1"->100)//已經(jīng)存在添加元素會覆蓋a += ("k1"->100,"k9"->9)//添加多個元素a -= ("k2","k1")//刪除元素a ++= List("CA" -> 23, "CO" -> 25)//追加集合a --= List("AL", "AZ")//刪除集合a.retain((k,v)=> k=="k1")//只保留等于k1元素,其他的刪除a.put("put1",200)//puta.remove("k2")//removea.clear()//清空a("k3")=100//支持println(a.contains("k6"))//是否包含某元素println(a.size)//打印大小println(a.get("k1").getOrElse("default")) //根據(jù)key讀取元素,不存在就替換成默認(rèn)值a.foreach{case (e,i) => println(e,i)} //遍歷打印1for( (k,v)<-a ) println(k,v) //遍歷打印2println(a.isEmpty)//判斷是否為空a.keys.foreach(println)//只打印keya.values.foreach(println)//只打印valuea=scala.collection.mutable.Map()//引用能變println(a.size)a.toSeq.sortBy(_._1)//排序 keya.toSeq.sortBy(_._2)//排序 valuea.toSeq.sortWith(_._1>_._1) //降序排序 keya.toSeq.sortWith(_._2>_._2) //降序排序 value//下面自定義按英文字母或數(shù)字排序implicit val KeyOrdering=new Ordering[String] {override def compare(x: String, y: String): Int = {x.compareTo(y)}}println(a.toSeq.sorted) }
?
轉(zhuǎn)載于:https://www.cnblogs.com/wangleBlogs/p/10096164.html
總結(jié)
以上是生活随笔為你收集整理的Scala中的Map使用例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1-8周成绩总结
- 下一篇: Ubuntu16.04安装TORCS