# Scala中的集合如何使用
## 一、Scala集合概述
Scala提供了豐富而強大的集合庫,分為**可變集合(mutable)**和**不可變集合(immutable)**兩大類。所有集合都位于`scala.collection`包及其子包中:
```scala
// 不可變集合(默認導入)
import scala.collection.immutable._
// 可變集合
import scala.collection.mutable._
// 不可變List
val nums = List(1, 2, 3)
// 可變ArrayBuffer
val names = mutable.ArrayBuffer("Alice", "Bob")
// 使用伴生對象
val set = Set(1.0, 2.0)
val list = List(1, 2, 3)
// 獲取元素
list(0) // 返回1
// 添加元素(返回新集合)
val newList = list :+ 4
// 連接集合
list ++ List(4, 5)
val numbers = (1 to 10).toList
// map轉換
numbers.map(_ * 2)
// filter過濾
numbers.filter(_ % 2 == 0)
// reduce聚合
numbers.reduce(_ + _)
// 鏈式調用
numbers.filter(_ > 5).map(_ * 10)
val head :: tail = List(1, 2, 3) // 模式匹配
val vec = Vector(1, 2, 3)
vec.updated(0, 100) // 非破壞性更新
val scores = Map("Alice" -> 90, "Bob" -> 85)
scores + ("Charlie" -> 95) // 添加元素
val map = mutable.HashMap(1 -> "a")
map(2) = "b" // 更新操作
val unique = Set(1, 2, 2, 3) // 自動去重
unique.contains(2) // 檢查存在性
集合類型 | 頭部訪問 | 尾部追加 | 隨機訪問 | 適用場景 |
---|---|---|---|---|
List | O(1) | O(n) | O(n) | 遞歸算法 |
Vector | O(1) | O(1) | O(1) | 通用序列 |
Array | O(1) | O(n) | O(1) | Java互操作 |
List(1, 2, 3).toArray
Array(1, 2, 3).toList
// 延遲計算
(1 to 1000000).view
.map(_ * 2)
.take(10)
.toList
import scala.jdk.CollectionConverters._
// Scala轉Java
val javaList: java.util.List[Int] = List(1, 2, 3).asJava
// Java轉Scala
val scalaList: mutable.Buffer[Int] = javaList.asScala
Scala集合庫提供了豐富的操作接口,通過不可變設計和高階函數支持函數式編程范式。開發者應根據具體場景選擇合適的集合類型,并充分利用map、filter、reduce等操作來編寫簡潔高效的集合處理代碼。
提示:Scala 2.13+對集合庫進行了重大重構,建議使用最新版本獲得最佳性能。 “`
(全文約1050字)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。