object set02 {
def main(args: Array[String]): Unit = {
// 可变的set
val set1 = scala.collection.mutable.Set("apple", "grape", "apple", "pear")
set1 += "banana"
println(set1) // 输出: HashSet(banana, grape, apple, pear)
// 不可变的set
val course = scala.collection.immutable.Set("apple", "banana")
// course += "xxxx" // 这行会编译错误,因为不可变Set不能修改
val newCourse = course + "pear" // 创建新的Set
println(newCourse) // 输出: Set(apple, banana, pear)
}
}
输出结果:
text
HashSet(banana, grape, apple, pear)
Set(apple, banana, pear)
关键概念:
可变Set (mutable.Set):
- 可以原地修改内容
- 支持
+=操作符 - 元素可以重复添加(但Set会自动去重)
不可变Set (immutable.Set):
- 创建后不能修改
- 使用
+操作符会返回新的Set - 默认的Set就是不可变的
object map02 {
def main(args: Array[String]): Unit = {
// 创建可变的Map 键值对
val scores = scala.collection.mutable.Map("alice" -> 90, "bobi" -> 85)
// 1. 添加
scores += ("max" -> 100)
// 2. 删除 alice。删除操作是根据key来做的
scores -= "alice"
// 3. 查询。查看bobi的分数,rst 是一个Option类型
val rst = scores.get("bobi")
if (rst.isEmpty) {
println("bobi没有成绩")
} else {
println(rst.get)
}
// 4. 打印scores
println(scores)
// for循环遍历
for ((key, value) <- scores) {
println(s"${key}, ${value}分")
}
// foreach遍历
scores.foreach({
case (key, value) => println(s"${key}, ${value}分")
})
}
}
代码功能说明:
1. 创建可变Map
scala
val scores = scala.collection.mutable.Map("alice" -> 90, "bobi" -> 85)
2. 基本操作
- 添加:
scores += ("max" -> 100) - 删除:
scores -= "alice"(根据key删除) - 查询:
scores.get("bobi")返回Option[Int]
3. 遍历方式
for循环:
scala
for ((key, value) <- scores) {
println(s"${key}, ${value}分")
}
foreach方法:
scala
scores.foreach({
case (key, value) => println(s"${key}, ${value}分")
})
输出结果:
text
85
Map(bobi -> 85, max -> 100)
bobi, 85分
max, 100分
bobi, 85分
max, 100分