【Kotlin/Android】配列(list)のインデックスを指定して安全に値を取得する方法!getOrNull/getOrElse

この記事からわかること

  • Kotlin/Android Studio配列(リスト)から安全要素取得する方法
  • インデックス指定して取得するには?
  • getOrNull/getOrElseメソッドの使い方
  • java.lang.IndexOutOfBoundsExceptionエラーとは?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

配列のインデックス(要素番号)を指定して値を取得する

Kotlinで配列のインデックス(要素番号)を指定して値を取得するには[要素番号]形式で記述します。

var list = listOf(1,2,3,4,5,6,7,8,9,10)

println(list[3]) // 4

java.lang.IndexOutOfBoundsExceptionエラー

[要素番号]形式の記述方法は配列の個数以上の値を渡すこともできてしまい、範囲外にアクセスするとjava.lang.IndexOutOfBoundsExceptionエラーが発生しアプリがクラッシュしてしまいます。

var list = listOf(1,2,3,4,5,6,7,8,9,10)

println(list[100]) // java.lang.IndexOutOfBoundsException

これを防ぐためには後述するgetOrNull/getOrElseメソッドを使用します。

範囲外ならnullを取得する:getOrNull

Kotlinで配列に存在するならその値を範囲外ならnullを取得するするにはgetOrNullメソッドを使用します。

var list = listOf(1,2,3,4,5,6,7,8,9,10)

println(list.getOrNull(100)) // null

範囲外ならデフォルト値を取得する:getOrNull

Kotlinで配列に存在するならその値を範囲外ならデフォルト値を取得するするにはgetOrElseメソッドを使用します。

var list = listOf(1,2,3,4,5,6,7,8,9,10)

println(list.getOrElse(100) { 0 }) // 0

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index