object Demo {
println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet
//创建定长Set
val s1=Set(1,1,2,2,3) //> s1 : scala.collection.immutable.Set[Int] = Set(1, 2, 3)
//创建变长Set
val s2=scala.collection.mutable.Set(1,2,3) //> s2 : scala.collection.mutable.Set[Int] = Set(1, 2, 3)
//创建一个定长Map。
val m1=Map("tom"->23,"rose"->18) //> m1 : scala.collection.immutable.Map[String,Int] = Map(tom -> 23, rose -> 18
//| )
//创建一个变长Map,可以追加kv对
val m2=scala.collection.mutable.Map("tom"->23,"rose"->18)
//> m2 : scala.collection.mutable.Map[String,Int] = Map(rose -> 18, tom -> 23)
//|
//变长Map追加kv对
m2+=("jim"->25,"jary"->30) //> res0: Demo07.m2.type = Map(jary -> 30, jim -> 25, rose -> 18, tom -> 23)
//通过key操作Map
m1.apply("tom") //> res1: Int = 23
m1("tom") //> res2: Int = 23
//get方法也可以通过key获取value,返回的类型是Option(Some or None)
m1.get("tom").getOrElse(0) //> res3: Int = 23
m1.get("werewrw").getOrElse(0) //> res4: Int = 0
//获取所有的key,一般为了便于处理,可以将迭代器转成List或Array再操作
m1.keys.toList //> res5: List[String] = List(tom, rose)
//获取所有的value
m1.values.toList //> res6: List[Int] = List(23, 18)
val m3=Map("tom"->23,"rose"->18,"jim"->25) //> m3 : scala.collection.immutable.Map[String,Int] = Map(tom -> 23, rose -> 18
//| , jim -> 25)
//过滤出m3中年龄>20的数据
//操作Map时,匿名函数的参数是一个(k,v)对
val r1=m3.filter{case(k,v)=>v>20} //> r1 : scala.collection.immutable.Map[String,Int] = Map(tom -> 23, jim -> 25)
//|
val r11=m3.filter{x=>x._2>20} //> r11 : scala.collection.immutable.Map[String,Int] = Map(tom -> 23, jim -> 25
//| )
//对m3映射,人名不变,年龄+10
val r2=m3.map{case(k,v)=>(k,v+10)} //> r2 : scala.collection.immutable.Map[String,Int] = Map(tom -> 33, rose -> 28
//| , jim -> 35)
val r21=m3.map{x=>(x._1,x._2+10)} //> r21 : scala.collection.immutable.Map[String,Int] = Map(tom -> 33, rose -> 2
//| 8, jim -> 35)
//如果在对Map类型映射时,如果key不变,只映射value,
//可以使用mapValues。匿名函数的参数是Map的value
val r3=m3.mapValues { v => v+10 } //> r3 : scala.collection.immutable.Map[String,Int] = Map(tom -> 33, rose -> 28
//| , jim -> 35)
}
Scala学习-6.3集合类型Set、Map
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 集合 什么是集合 集合是存储各种数据类型对象的一个容器(1)是一个容器(2)一般放同种数据类型的对象(3)一般存放...
- 欢迎前往我的CSDN Map是一个接口和通用的元素集合。 Map以键和值对的形式保存数据。 映射的键是唯一的,每个...