Traversable 跳过开头的前N个元素,选择剩余的元素

解决方案:

1、drop

2、dropWhile 

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 drop = t1.drop(5);
    println(drop);
    //List(6, 7, 8, 9, 10)

    val drop2 = t1 drop (3);
    println(drop2);
    //List(4, 5, 6, 7, 8, 9, 10)

    val drop3 = t1 drop 3
    println(drop3);
    //List(4, 5, 6, 7, 8, 9, 10)


    println(
      Traversable(1, 3, 5, 2, 4, 6)
        .drop(3)
    )
    //List(2, 4, 6)


    val dropWhile1 = t1.dropWhile(_ > 6); //t1.dropWhile(x => x > 6)
    println(dropWhile1);
    //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    val dropWhile2 = t1.dropWhile(_ < 6);
    println(dropWhile2);
    //List(6, 7, 8, 9, 10)


    println(
      Traversable(1 to 10: _*)
        .dropWhile(_ > 6)
    )
    //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    println(
      Traversable(7, 8, 9, 1, 2, 3, 4, 5, 6)
        .dropWhile(_ > 6)
    )
    //List(1, 2, 3, 4, 5, 6)

    println(
      Traversable(7, 8, 1, 2, 3, 4, 5, 6, 9)
        .dropWhile(x => x > 6)
    )
    //List(1, 2, 3, 4, 5, 6, 9)


    //def dropWhile(p : scala.Function1[A, scala.Boolean]) : Repr
    /**
      * dropWhile()它也接受一个断言做方法参数
      * 但是,它会跳过开始满足断言的元素。一旦某个元素不满足断言,则返回剩余的元素。
      **/
  }
}

 

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