scala基础教程
Scala介绍
Scala环境搭建
Scala基础语法
函数式编程基础
Scala集合操作
Scala面向对象编程
Scala模式匹配
Scala错误处理
Scala并发编程
Scala与数据库交互
Scala与Web开发
Scala测试
高级特性
Scala工具和库
最佳实践和代码风格
Scala项目实战
-
+
首页
Scala集合操作
### 5.1 集合概览(List, Set, Map等) Scala提供了多种集合类型,每种都有其特定的用途和特点。 #### List(列表) `List`是一个线性集合,保持元素的插入顺序,且每个元素只出现一次。 ```scala val numbers = List(1, 2, 3, 4, 5) val strings = List("apple", "banana", "cherry") ``` #### Set(集合) `Set`是一个无序且不包含重复元素的集合。 ```scala val numbersSet = Set(1, 2, 3, 4, 5) val stringsSet = Set("apple", "banana", "cherry") ``` #### Map(映射) `Map`是一个键值对的集合,每个键只对应一个值。 ```scala val numbersMap = Map("one" -> 1, "two" -> 2, "three" -> 3) ``` ### 5.2 集合操作和转换 Scala集合提供了丰富的方法来进行操作和转换。 #### 创建和初始化 ```scala // 创建一个空的List val emptyList = List() // 创建一个空的Set val emptySet = Set() // 创建一个空的Map val emptyMap = Map() ``` #### 添加和删除元素 ```scala // 在List末尾添加元素 val newList = numbers ::: List(6, 7) // 在Set中添加元素 val newSet = numbersSet + 6 // 在Map中添加键值对 val newMap = numbersMap + ("four" -> 4) // 从List中删除元素 val updatedList = numbers.filter(_ != 3) // 从Set中删除元素 val updatedSet = numbersSet - 3 // 从Map中删除键值对 val updatedMap = numbersMap - "two" ``` #### 转换 ```scala // 将List中的每个元素乘以2 val doubledList = numbers.map(_ * 2) // 将Set中的每个元素转换为字符串 val stringSet = numbersSet.map(_.toString) // 将Map的值乘以2 val doubledMapValues = numbersMap.mapValues(_ * 2) ``` ### 5.3 集合的函数式操作 Scala集合支持函数式操作,如`map`、`filter`、`flatMap`等。 #### map(映射) `map`方法将集合中的每个元素应用一个函数,并返回一个新的集合。 ```scala val squaredNumbers = numbers.map(x => x * x) ``` #### filter(过滤) `filter`方法根据给定的条件过滤集合中的元素。 ```scala val evenNumbers = numbers.filter(_ % 2 == 0) ``` #### flatMap(扁平映射) `flatMap`方法将集合中的每个元素映射成一个集合,然后将这些集合合并成一个集合。 ```scala val list1 = List(List(1, 2), List(3, 4)) val flatList = list1.flatMap(identity) ``` #### foreach(遍历) `foreach`方法对集合中的每个元素应用一个函数。 ```scala numbers.foreach(println) ``` #### reduce(归约) `reduce`方法将集合中的所有元素通过一个二元运算符归约为单个值。 ```scala val sum = numbers.reduce(_ + _) ``` Scala的集合操作和函数式操作提供了强大的工具,使得处理和转换数据变得简单而高效。这些操作是不可变的,意味着它们不会改变原始集合,而是返回新的集合。
wwbang
2025年1月2日 14:16
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码