元组
1. 元组简介
如果想让无关的数据当做一个整体使用,这时需要使用元组来表示,元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。需要注意的是元组中最大只能有22个元素。元组也有类型,叫做TupleN[Classtype...]
。
2. 元组的使用
scala
def main(args: Array[String]): Unit = {
val tuple1: Tuple3[Int, String, Int] = (1, "zhangsan", 30)
println(tuple1)
// tuple的简写
val tuple2: (String, String, String) = ("hello", "use", "scala")
println(tuple2)
// 只能最多22个,否则编译通不过
//val tuple3 = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
//println(tuple3)
// 没有循环遍历的方法,因为数据之间是没有关系的
// 如果需要访问里面的数据,可以采用顺序号访问
println(tuple1._1)
println(tuple1._2)
println(tuple1._3)
// println(tuple1._4)
println("*****************************")
// 获得迭代器
tuple2.productIterator.foreach(println)
// 通过索引访问数据
println(tuple2.productElement(0))
// 如果元组的大小为2,那么成为对偶元组,也称为键值对对象
val t1 = ("name", "jack")
val t2 = ("age", 32)
// Map中的键值对其实就是元组,是由大小为2的元组组成
// ->它是一个方法, 所有的对象都具有->方法,内部也是生成二元元组
val tuple3: (String, String) = "address" -> "chengdu"
println(tuple3)
// 比如元组的嵌套
val tuple4: (((Int, Int), Int), Int) = 1 -> 2 -> 3 -> 4
println(tuple4)
// Map也可以这样声明
val map: Map[Int, String] = Map((1, "test"), (55, "lichun"), (6, "school"))
println(map)
}
运行结果: