检查 Traversable对象中的元素是否满足条件

检查 Traversable 对象中的所有元素是否满足某个断言,或者 是否存在某个元素满足断言。

解决方案:

1、forall

2、exist

 

forall

package main

object Test {

  def main(args: Array[String]): Unit = {

    val t1 = Traversable(1 to 10: _*);
    println(t1);
    //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)


    val b1 = t1.forall(_ <= 10); //def forall(p : Function1[A, Boolean]) : Boolean
    println(b1.getClass.getName); //boolean
    println(b1); //true

    
    val b2 = t1.forall(x => x > 10);
    println(b2.getClass.getName); //boolean
    println(b2); //false
  }
}
//空集合
println(Traversable.empty[Int].forall(_ => false)); //true
println(Traversable.empty[Int].forall(_ => true));  //true

forall()方法可以测试所有的元素,如果所有元素使用断言p返回的结果都是true,那么forall()方法则返回true。

forall 是对所有元素的测试。

 

exist

package main

object Test {

  def main(args: Array[String]): Unit = {

    val t1 = Traversable(1 to 10: _*);
    println(t1);
    //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)


    val b1 = t1.exists(_ == 5); //def exists(p : Function1[A, Boolean]) : Boolean
    println(b1.getClass.getName); //boolean
    println(b1); //true


    val b2 = t1.exists(x => x > 10);
    println(b2.getClass.getName); //boolean
    println(b2); //false


    val b3 = t1.exists(x => x < 10);
    println(b3.getClass.getName); //boolean
    println(b3); //true
  }
}

exist()是用来检查某个元素是否满足断言的。

只要找到一个元素,那么运行此方法返回的结果就是true,不像 forall 要检查所有元素。

 

posted @ 2019-07-21 02:26  茗::流  阅读(116)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。