scala 编程(其三) 映射与元组

关于映射的说明:
1,数组,集合,元组,映射等默认都是不可变的 ,需要引入可变的包!
2,map 采用的是类继承的方式来进行实现可变与不可变的
3,map 是一个不可变的键值库,键和值都可以类型参数化
package day01

object Test5 {
  def main(args: Array[String]): Unit = {
    //scala 之中的映射实际上是 hash表,java 之中的map
    // 在实际开发过程 map 经常使用!
    val map4=Map("scala"->1,"java"->2,"python"->3)
    println(map4("scala"))  // 不可变的 所以不可修改
    val m = Map(("java",2),("python",9))
    val m1 = Map(("java",2),("python",9))
    println((m ++ m1))
    //导入的 Map 有着更多的方法
    import scala.collection.mutable.Map
    //使用元组
    val map3=Map(("scala",1),("java",2),("python",3))
    map3("scala")=4  //val声明的是引用不可变 但是里面的值变化与引用没有联系
    println(map3)
    val map1 =Map[String,Int]()
    map1("scala")=1
    map1 += (("java",2),("python",9)) // 使用元组的形式进行添加!
    map1.put("c#",1)  //使用 put添加
    map1.remove("python")
    map1-="java"
    println(map1)
  }
}
关于元组的说明:
1,元组是一种容器,元组是不可变的,并且可以包含很多类型对象
2,元组的索引是基于 1开始的,这是因为对于拥有静态类型的元组的其他语言都是 索引都是1开始的
package day01

object Test3 {
  def main(args: Array[String]): Unit = {
    //元组可以包含很多类型
    val t =("scala",1,1819l,3.17,("python",12),Array("a","b"))
    println(t._5._1) // 取出python 在元组概念里是从 1开始
    val t1,(a ,b,c,d,e,f) = ("scala",1,1819l,3.17,("python",12),Array("a","b"))
    println(a)  //这种声明方式取值方便
    val arr4= Array(("小米","垃圾"),("appe","盆友"))
    println(arr4.toMap) // 数组使用元组转换成 map

    val arr5=Array("a","b","c")
    val arr6=Array(1,2,3)
    val arr7 = arr5 zip arr6 // zip与 '+'一样是方法,使用zip 进行数组合并
    println(arr7.toBuffer)
  }
}

 

posted @ 2019-03-03 13:07  十七楼的羊  阅读(143)  评论(0编辑  收藏  举报