Scala 元组Tuple

映射是 K/V 对偶的集合,对偶是元组的最简单形式。

元组可以装多个不同类型的值,如果需要集合中元素类型多样性,就可以采用元组。

创建元组

元组最多22个元素

// 二元元组
val t = (1, "scala")
val t = (1 -> "scala")
val t = 1 -> "scala"             // (1, scala)

// 三元元组
val t = (1, "scala", 0.1)        
val t = Tuple3(1, "scala", 0.1)    // (scala,1,0.1)

二元元组是Tuple2 class的实例,三元元组是Tuple3 class的实例。

t.getClass            // class scala.Tuple2

获取元组中的值

// 下标从1开始
val e = t._1        // 1
val e = t._2        // scala

t.productElement(1)    // scala

通过模式匹配来把元组元素赋值给变量

val t, (a, b, c) = (1, "scala", 0.1)

// t:(Int, String, Double) = (1, "scala", 0.1)
// a:Int = 1
// b:String = scala
// c:Double = 0.1

将对偶的元组转成集合

val arr = Array(("id", 1),("uu", 1189))

// toMap将对偶的集合转成映射
arr.toMap        // Map(id -> 1, uu -> 1189)

// 可以通过这种方式构建map
val map = Map("id" -> 1)

元组拉链
如果两个数组的元素个数不一致,拉链操作后生成的数组的长度为较小的数组的元素个数。

val ids = Array("id", "uu", "time")
val values = Array(1, 1189, 20190711)

val t = ids.zip(values)       // Array(("id", 1), ("uu", 1189), ("time", 20190711))

t.toMap                       // Map("id" -> 1, "uu" -> 1189, "time" -> 20190711)

遍历

// 迭代遍历
val t = (1, "scala")        // (1, scala)
val tt = t.productIterator
for (e <- tt) 
  println(e)
// 或者
tt.foreach(print(_))

// 1
// scala
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值