kotlin takeWhile/DropWhile等方法

2019-06-24  本文已影响0人  流水ke

takeWhile 、takeLastWhile、DropWhile、dropLastWhile、这四个方法傻傻分不清,还是用数字来判断最轻松,统一判断条件就很容易搞清楚各自代表的意思了。

    val numbers = listOf(4,1, 2, 3,2,5,3 ,4,5,6,7,8)

    println("-----------------多个元素不符合--------------")
    println(numbers.takeWhile {  it > 3  })   //返回list第一个元素到第一个不符合条件的元素之前的元素列表;list第一个元素不符合条件返回空
    println(numbers.takeLastWhile { it > 3  })  //返回list最后一个元素倒序到最后一个不符合条件的元素之前的列表;list最后一个元素不符合条件返回空
    println(numbers.dropWhile { it > 3  })  //和takeWhile完全相反,返回第一个不符合条件元素到list最后一个元素的元素列表
    println(numbers.dropLastWhile { it > 3  }) //和takeLastWhile完全相反,返回list第一个元素到最后一个不符合条件元素的元素列表

    println("-----------------只有1个元素不符合--------------")

    val numbers2 = listOf(4,5,3 ,4,5,6,7,8)
    println(numbers2.takeWhile {  it > 3  })
    println(numbers2.takeLastWhile { it > 3  })
    println(numbers2.dropWhile { it > 3  })
    println(numbers2.dropLastWhile { it > 3  })

    println("---------------第1个元素不符合----------------")

    val numbers3 = listOf(3,5,3 ,4,5,6,7,8)
    println(numbers3.takeWhile {  it > 3  })
    println(numbers3.takeLastWhile { it > 3  })
    println(numbers3.dropWhile { it > 3  })
    println(numbers3.dropLastWhile { it > 3  })

    println("---------------最后1个元素不符合----------------")

    val numbers4 = listOf(4,5,3 ,4,5,6,7,3)
    println(numbers4.takeWhile {  it > 3  })
    println(numbers4.takeLastWhile { it > 3  })
    println(numbers4.dropWhile { it > 3  })
    println(numbers4.dropLastWhile { it > 3  })

//下方是打印结果
-----------------多个元素不符合--------------
[4]
[4, 5, 6, 7, 8]
[1, 2, 3, 2, 5, 3, 4, 5, 6, 7, 8]
[4, 1, 2, 3, 2, 5, 3]
-----------------只有1个元素不符合--------------
[4, 5]
[4, 5, 6, 7, 8]
[3, 4, 5, 6, 7, 8]
[4, 5, 3]
---------------第1个元素不符合----------------
[]
[4, 5, 6, 7, 8]
[3, 5, 3, 4, 5, 6, 7, 8]
[3, 5, 3]
---------------最后1个元素不符合----------------
[4, 5]
[]
[3, 4, 5, 6, 7, 3]
[4, 5, 3, 4, 5, 6, 7, 3]
上一篇 下一篇

猜你喜欢

热点阅读