Scala中有很多實現不同過濾需求的方法,與過濾操作相關的幾個常用函數還包括exists和find。
其中,exists方法判斷是否存在滿足給定條件的元素,find方法返回第一個滿足條件的元素。
filter
最典型的是filter方法,它接受一個返回布爾值的函數f作爲參數,並將f作用到每個元素上,將f返回真值的元素組成一個新容器返回。
@Test
def testFilter(): Unit ={
/**
* 測試filter與filterNot
*/
val list=List("張大川", "李二狗", "王三順", "鄧老五")
val newList=list.filter(_.contains("張"))
newList.map(println)
println(list exists(_.contains("張")))
println(list find(_.contains("張")))
}
輸出結果
張大川
true
Some(張大川)
filterNot
與filter相反的一個過濾方法是filterNot,從字面意義就可以推測,它的作用是將不符合條件的元素返回。
@Test
def testFilterNot(): Unit ={
/**
* 測試filter與filterNot
*/
val list=List("張大川", "李二狗", "王三順", "鄧老五")
val newList=list.filterNot(_.contains("張"))
newList.map(println)
}
輸出結果
李二狗
王三順
鄧老五