Scala中過濾操作filter與filterNot函數

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)
  }

輸出結果

李二狗
王三順
鄧老五
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章