take
系のメソッドを使用すると、配列やリストの先頭・末尾から指定した数の要素を取り出すことができます。
どのメソッドも新しいリストを返すため、元のリストは変化しません。
val list = listOf(1, 2, 3, 4, 5) // intArrayOf でも OK
println(list.take(3)) //=> [1, 2, 3]
println(list.takeLast(3)) //=> [3, 4, 5]
takeWhile
系のメソッドは、条件式を指定することができ、各要素の値が条件を満たす限り取り出します。
val chars = ('a'..'z').toList()
println(chars.takeWhile { it < 'f' }) //=> [a, b, c, d, e]
println(chars.takeLastWhile { it > 'w' }) //=> [x, y, z]
drop
系のメソッドを使用すると、配列やリストの先頭・末尾から指定した数の要素を削除します。
どのメソッドも新しいリストを返すため、元のリストは変化しません。
val list = listOf(1, 2, 3, 4, 5) // intArrayOf でも OK
println(list.drop(3)) //=> [4, 5]
println(list.dropLast(3)) //=> [1, 2]
dropWhile
系のメソッドは、条件式を指定することができ、各要素の値が条件を満たす限り削除します。
val chars = ('a'..'z').toList()
println(chars.dropWhile { it < 'x' }) //=> [x, y, z]
println(chars.dropLastWhile { it > 'c' }) //=> [a, b, c]