您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。