Scala学习

Scala Tuple元组操作整理

2020-10-25  本文已影响0人  xiaogp

摘要: ScalaTupleJava
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
    }
上一篇 下一篇

猜你喜欢

热点阅读