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) } }