📅  最后修改于: 2023-12-03 14:47:15.679000             🧑  作者: Mango
在Scala中,List是最基本的集合类之一。它表示一个不可变的、有序的元素序列。List类中提供了许多便捷的方法来操作集合中的元素,其中之一就是filter()方法。
filter()方法是List类中的一个高阶函数,它接受一个谓词函数作为参数,并返回一个新的List,该List包含满足谓词函数条件的元素。该方法可以被延迟执行,因此对于大型集合也会很快。
下面是filter()方法的语法:
def filter(p: A => Boolean): List[A]
其中p是一个谓词函数,A是元素的类型。该方法将返回一个类型为List[A]的新集合,该集合仅包含满足谓词条件的元素。
下面是一些关于filter()方法的使用示例:
val list = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val evenList = list.filter(_ % 2 == 0)
println(evenList) // 输出:List(2, 4, 6, 8, 10)
上面的例子演示了如何使用filter()方法过滤出List中的偶数元素。我们定义了一个谓词函数“_ % 2 == 0”,它会返回true如果给定的元素是偶数。然后我们调用filter()方法,并将这个谓词函数作为参数传递给它。最后返回一个新List,其中只包含偶数元素。
val list = List("apple", "banana", "orange", "pear", "kiwi")
val resultList = list.filter(_.contains("a"))
println(resultList) // 输出:List(apple, banana, orange, pear)
此例子演示了如何使用filter()方法过滤出List中包含指定字符的元素。将包含“a”的元素作为谓词函数传递给filter()方法。然后,仅包含这些元素的新List返回。
val list = List("apple", "banana", "orange", "pear", "kiwi")
val resultList = list.filter(_.length < 5)
println(resultList) // 输出:List(pear, kiwi)
此例子演示了如何使用filter()方法过滤出List中长度小于指定值的元素。我们将一个谓词函数传递给filter()方法,该函数返回true如果元素长度小于5。最后返回一个新List,其中只有两个元素的长度小于5。
总之,filter()方法是Scala List类中最常用的方法之一。它可以方便地对集合进行过滤,并返回一个新的集合,其中仅包含满足指定条件的元素。大多数程序员在编写Scala代码时都会经常使用它。