- Scala 集合教程
- Scala 集合 - 首頁
- Scala 集合 - 概述
- Scala 集合 - 環境設定
- Scala 集合 - 陣列
- Scala 集合 - 陣列
- Scala 集合 - 多維陣列
- Scala 集合 - 使用範圍建立陣列
- Scala 集合 - ArrayBuffer
- Scala 集合 - 列表
- Scala 集合 - 列表
- Scala 集合 - ListBuffer
- Scala 集合 - ListSet
- Scala 集合 - 向量
- Scala 集合 - 集合
- Scala 集合 - 集合
- Scala 集合 - BitSet
- Scala 集合 - HashSet
- Scala 集合 - TreeSet
- Scala 集合 - 對映
- Scala 集合 - 對映
- Scala 集合 - HashMap
- Scala 集合 - ListMap
- Scala 集合 - 其他
- Scala 集合 - 迭代器
- Scala 集合 - Option
- Scala 集合 - 佇列
- Scala 集合 - 元組
- Scala 集合 - Seq
- Scala 集合 - 堆疊
- Scala 集合 - 流
- Scala 集合組合器方法
- Scala 集合 - drop
- Scala 集合 - dropWhile
- Scala 集合 - filter
- Scala 集合 - find
- Scala 集合 - flatMap
- Scala 集合 - flatten
- Scala 集合 - fold
- Scala 集合 - foldLeft
- Scala 集合 - foldRight
- Scala 集合 - map
- Scala 集合 - partition
- Scala 集合 - reduce
- Scala 集合 - scan
- Scala 集合 - zip
- Scala 集合有用資源
- Scala 集合 - 快速指南
- Scala 集合 -有用資源
- Scala 集合 - 討論
Scala 集合 - 元組
Scala 元組將固定數量的項組合在一起,以便可以將它們作為一個整體傳遞。與陣列或列表不同,元組可以容納不同型別的物件,但它們也是不可變的。
以下是一個包含整數、字串和控制檯的元組示例。
val t = (1, "hello", Console)
這是以下內容的語法糖(快捷方式)−
val t = new Tuple3(1, "hello", Console)
元組的實際型別取決於它包含的元素數量和這些元素的型別。因此,(99, "Luftballons") 的型別是 Tuple2[Int, String]。( 'u', 'r', "the", 1, 4, "me") 的型別是 Tuple6[Char, Char, String, Int, Int, String]
元組的型別為 Tuple1、Tuple2、Tuple3 等。如果需要更多,Scala 目前有上限 22,則可以使用集合,而不是元組。對於每個 TupleN 型別(其中 1 <= N <= 22),Scala 定義了許多元素訪問方法。給定以下定義 -
val t = (4,3,2,1)
要訪問元組 t 的元素,可以使用方法 t._1 訪問第一個元素,t._2 訪問第二個元素,依此類推。例如,以下表達式計算 t 的所有元素的總和。
val sum = t._1 + t._2 + t._3 + t._4
您可以使用元組編寫一個方法,該方法接受 List[Double] 並返回一個三元素元組 Tuple3[Int, Double, Double] 中的計數、總和和平方和。它們也可用於在併發程式設計中將資料值列表作為訊息在參與者之間傳遞。
嘗試以下示例程式。它展示瞭如何使用元組。
示例
object Demo {
def main(args: Array[String]) {
val t = (4,3,2,1)
val sum = t._1 + t._2 + t._3 + t._4
println( "Sum of elements: " + sum )
}
}
將上述程式儲存到 **Demo.scala**。以下命令用於編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Sum of elements: 10
迭代元組
您可以使用 **Tuple.productIterator()** 方法迭代元組的所有元素。
嘗試以下示例程式來迭代元組。
示例
object Demo {
def main(args: Array[String]) {
val t = (4,3,2,1)
t.productIterator.foreach{ i =>println("Value = " + i )}
}
}
將上述程式儲存到 **Demo.scala**。以下命令用於編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Value = 4 Value = 3 Value = 2 Value = 1
轉換為字串
您可以使用 **Tuple.toString()** 方法將元組的所有元素連線到一個字串中。嘗試以下示例程式以轉換為字串。
示例
object Demo {
def main(args: Array[String]) {
val t = new Tuple3(1, "hello", Console)
println("Concatenated String: " + t.toString() )
}
}
將上述程式儲存到 **Demo.scala**。以下命令用於編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Concatenated String: (1,hello,scala.Console$@281acd47)
交換元素
您可以使用 **Tuple.swap** 方法交換 Tuple2 的元素。
嘗試以下示例程式來交換元素。
示例
object Demo {
def main(args: Array[String]) {
val t = new Tuple2("Scala", "hello")
println("Swapped Tuple: " + t.swap )
}
}
將上述程式儲存到 **Demo.scala**。以下命令用於編譯和執行此程式。
命令
\>scalac Demo.scala \>scala Demo
輸出
Swapped tuple: (hello,Scala)