Scala Tuple元组操作整理
2020-10-25 本文已影响0人
xiaogp
摘要: Scala
,Tuple
,Java
Scala的元组Tuple是不可变的,但与列表不同的是元组可以包含不同类型
的元素。
Scala Tuple基本操作
创建元组
使用括号()或者Tuple进行元组创建,Tuple后面的数字代表元组长度,最长22
个元素(Tuple22),对于二元元组可以使用->
创建
def createTuple(): Unit = {
val tuple1 = (1, "a", true)
val tuple2 = new Tuple3[Int, String, Boolean](1, "a", true)
val tuple3 = Tuple3(1, "a", true)
val tuple4 = 1 -> "a"
println(tuple1 == tuple2) // true
println(tuple1 == tuple3) // true
}
访问元组元素
使用下标
访问元素,也可以直接赋值给一个()元组,不需要的值使用_
代替
def getTupleValue(): Unit = {
val tuple1 = (1, "a", true)
val a = tuple1._1
val b = tuple1._2
val c = tuple1._3
val (d, _, _) = Tuple3(1, "a", true)
println(d)
}
元组元素交换
对于二元元组(Tuple2)可以使用swap
进行位置交换
def swapTuple(): Unit = {
val tuple1 = Tuple2(1, "a")
val tuple2 = tuple1.swap
println(tuple2) // (a,1)
println(tuple2._1) // a
}
元组元素遍历循环
使用productIterator
获得迭代对象
def TupleLoop(): Unit = {
val tuple1 = (1, "a", true)
tuple1.productIterator.foreach(println)
}
Scala Tuple在Java中调用
Scala函数返回Tuple,Java对象指定Tuple类型,泛型String通用,其他类型Object再类型强转,使用下标方法
获得值
public static void main(String[] args) {
scala.Tuple2<String, String> res = TupleTest.returnTuple();
String a = res._1(); // a
String b = res._2(); // b
scala.Tuple2<Object, Object> res2 = TupleTest.returnTuple2();
int aa = (int) res2._1(); // 1
boolean bb = (boolean) res2._2(); // false
}