本文介绍Scala中的Tuple数据结构。
1、基本知识
tuple元组是一些不同类型的元素的集合。
Scala中的tuple是 不可变数据结构(immutable),即一旦声明后就不能改变其值。
一个元组tuple的最大元素上限是22。即可使用的tuple类型 TupleN(N元组),1<=N<=22。
2、Tuple的定义方法
2.1 方法一:直接定义。好处是不用声明Tuple的长度,简便
val s1 = (12,"Harry")
val m1 = (20,12,16,4)
2.2 方法二:通过TupleN类来定义,其中N是你需要使用的长度
val s1 = new Tuple2(12,"Harry")
val m1 = new Tuple4(20,12,16,4)
3、Tuple中元素的获取方法
通过tuple._k 来获取元组tuple第k个位置的元素,k=1,2,..N
val m1 = (20,12,16,4)
m1._1 //4元组的第1个元素
m1._2 //4元组的第2个元素
m1._3 //4元组的第3个元素
m1._4 //4元组的第4个元素
val mul = m1._1 * m1._3 * m1._4
4、Tuple中元素的迭代方法
Tuple.productIterator() 方法可用于迭代元组Tuple中的所有元素。
//in scala
object Test {
def main(args: Array[String]) {
val names = ("John","Smith","Anderson","Steve","Rob")
names.productIterator.foreach{ i =>println("Value = " + i )}
}
}
5、折叠Tuple中的元素
object Swap {
def main(args: Array[String]) {
val id = new Tuple2(12,34)
println("Swapped Tuple Id is:"+id.swap)
}
}
6、Tuple转为String
Tuple.toString()方法把tuple中的所有元素拼接起来组成一个String
object Test {
def main(args: Array[String]) {
val student = new Tuple3(12, "Rob", "IT")
val aString:String = student.toString()
println("Concatenated String: " + aString)
}
}