1.默认情况下Map构造的是不可修改的集合(immutable),可变集合使用scala.collection.mutable.Map
2.getOrElse方法:如果key不存在,则输出默认值
3.SortedMap返回排序的Map集合
4.LinkedHashMap可以记住插入数据的顺序
5.tuple中可以有很多类型的数据,在大数据中一定使用tuple表达数据结构
6.tuple另外一个重要的应用是作为函数的返回值,在tuple中返回若干个值,SparkContext源码
7.Tuple在进行索引的时候,与我们平时所见到的数组是有很多不同点的,它的索引方式是通过:下划线和一个基于1的元素索引。(这里特别强调基数,因为在Java、C++中,我们定义数组的时候,都是基于0开始的)
package kang
/* 1.默认情况下Map构造的是不可修改的集合(immutable),可变集合使用scala.collection.mutable.Map
* 2.getOrElse方法:如果key不存在,则输出默认值
* 3.SortedMap返回排序的Map集合
* 4.LinkedHashMap可以记住插入数据的顺序
* 5.tuple中可以有很多类型的数据,在大数据中一定使用tuple表达数据结构
* 6.tuple另外一个重要的应用是作为函数的返回值,在tuple中返回若干个值,SparkContext源码
*/
object Scala_mapAndTuple {
def main(args: Array[String]): Unit = {
val map=Map("xiaohong"->21,"xiaoming"->12)//调用工厂方法模式apply来构造Map,Map是一个接口,apply使用具体实现类
val map2=Map(("xiaohong",21),("xiaoming",12))
//map("xiaohong")=99会报错value update is not a member of scala.collection.immutable.Map[String,Int]
println("可变Map:map3")
val map3=scala.collection.mutable.Map(("树",21),("木",12),("花",43),("草",42))
map3("树")=99
for((name,age) <- map3) println("name: "+name+" age: "+age)
println("可变HashMap:map4")
val map4 = new scala.collection.mutable.HashMap[String,Int]
map4+=(("lala",12),("haha",12),("dala",12),("vaha",12))
for((name,age) <- map4) println("name: "+name+" age: "+age)
for(name <- map4.keys) println("name: "+name)
for(age <- map4.values) println("age: "+age)
println("Map排序:map5")
val map5=scala.collection.immutable.SortedMap(("3树",21),("2木",12),("4花",43),("1草",42))
for((name,age) <- map5) println("name: "+name+" age: "+age)
println("Map排序:map6")
val map6=new scala.collection.mutable.LinkedHashMap[String,Int]
map6+=(("3树",21),("2木",12),("4花",43),("1草",42),"5人"->12)
for((name,age) <- map6) println("name: "+name+" age: "+age)
println("tuple")
val tup=("kang","大学",23,"喜欢蓝色")
println(tup._2)//返回第二个数据
}
}