【Kotlin/Android】配列(list)から一部を切り出す方法!subListの使い方

この記事からわかること
- Kotlin/Android Studioで配列(リスト)から一部を切り出す方法
- subListメソッドの使い方
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
配列から一部を切り出す方法
Kotlinで大きな配列(list/コレクション)から一部分だけを切り出した配列を取得するにはsubList
メソッドを使用します。引数fromIndex
には切り出したい最初のインデックスをtoIndex
には切り出したい範囲までのインデックスを渡します。
public fun subList(fromIndex: Int, toIndex: Int): List
例えば「インデックス1〜4までの配列を作成したい場合」は以下のようにします。
val list = listOf(1,2,3,4,5,6,7,8,9,10)
// インデックス1から4までのサブリストを取得
val subList = list.subList(1, 4)
println(subList) // [2, 3, 4]
サブリストを変更すると元のリストまで変化する
注意したいのがサブリストを変更すると元のリストまで変化することです。subList
メソッドで取得しているのは元のリストの一部分のビューです。つまり参照元は同じで中身だけあたかも少なくなっているように見せているようなイメージになります。
val mutableList = mutableListOf(1,2,3,4,5,6,7,8,9,10)
val subList = mutableList.subList(2, 5)
// サブリストを更新
subList[0] = 1000
println(subList) // [1000, 4, 5]
// 元のリストにも変更が反映される
println(mutableList) // [1, 2, 1000, 4, 5, 6, 7, 8, 9, 10]
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。