📜  Scala集合-过滤方法(1)

📅  最后修改于: 2023-12-03 15:05:05.135000             🧑  作者: Mango

Scala集合-过滤方法

在Scala中,集合是一种非常常用的数据结构。在对集合进行操作时,经常需要使用过滤方法来筛选想要的元素。本文将介绍Scala中常用的几种过滤方法。

过滤方法
  1. filter方法

filter方法是Scala中最常用的过滤方法之一。它的作用是将集合中符合条件的元素取出并返回一个新的集合。下面是一个示例:

val list = List(1, 2, 3, 4, 5)
val newList = list.filter(_ > 3)
// newList的值为List(4, 5)

在这个例子中,我们使用了filter方法来筛选出大于3的元素,并将新的集合赋值给newList。

  1. collect方法

collect方法是另外一个常用的过滤方法。它的作用是将符合条件的元素从集合中取出,并根据给定的偏函数进行转换。下面是一个示例:

val list = List("1", "2", "3", "4", "5")
val newList = list.collect {
  case s: String if s.toInt > 3 => s.toInt
}
// newList的值为List(4, 5)

在这个例子中,我们使用了collect方法来筛选出字符串类型的元素,并且该元素的值大于3。随后,将这些元素转换成整型,并将新的集合赋值给newList。

  1. partition方法

partition方法是将集合根据给条件分成两个部分。第一个部分是满足条件的元素集合。第二个部分是不满足条件的元素集合。下面是一个示例:

val list = List(1, 2, 3, 4, 5)
val (list1, list2) = list.partition(_ > 3)
// list1的值为List(4, 5),list2的值为List(1, 2, 3)

在这个例子中,我们使用了partition方法来筛选出大于3的元素。随后,我们将集合分成两个部分,并将如结果分别赋值给list1和list2。

  1. dropWhile方法

dropWhile方法是在集合中,按照从左到右的顺序,删除所有满足给定条件的元素,直到遇到第一个不满足给定条件的元素为止。下面是一个示例:

val list = List(1, 2, 3, 4, 5)
val newList = list.dropWhile(_ < 3)
// newList的值为List(3, 4, 5)

在这个例子中,我们使用了dropWhile方法来删除集合中小于3的元素,直到遇到第一个不满足该条件的元素3为止。

总结

Scala中,过滤方法是操作集合的必备方法。本文介绍了常用的filter、collect、partition、dropWhile等过滤方法。如有疑问,欢迎留言交流。