scala中的map和tuple


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值