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