まくまくKotlinノート
配列やリストの先頭・末尾の n 要素を取り出す・削除する (take, drop)
2019-08-05

先頭・末尾からいくつかの要素を取り出す (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 系のメソッドは、条件式を指定することができ、各要素の値が条件を満たす限り取り出します。

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 系のメソッドは、条件式を指定することができ、各要素の値が条件を満たす限り削除します。

val chars = ('a'..'z').toList()
println(chars.dropWhile { it < 'x' })     //=> [x, y, z]
println(chars.dropLastWhile { it > 'c' }) //=> [a, b, c]
2019-08-05