关于映射的说明:
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)
}
}