scala中的map和tuple

来源:互联网 发布:聚划算淘宝商城特价区 编辑:程序博客网 时间:2024/05/19 23:56


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)//返回第二个数据      }}


原创粉丝点击