【Kotlin】~ちょこっとメモ~「.indices」
調べたきっかけ
ListOf()で作成した2つのリストの各要素を、別のMapのキーと値として格納する処理を書いていたところ、
for文の条件式で書いていた、
//条件式:0~リストのサイズ(含まない)分繰り返す for(i in 0 until nameList.size){ }
のところでAndroidStudioがヒントをくれた。
どうやら「この部分は”.indices”で置き換えられますよ~」とのことらしい。
ってことでちょっと調べてみた
「.indices」は範囲を返す
詳しく書くと
「コレクションのインデックス範囲を表す”IntRange”オブジェクトを返す」ということらしい。
・IntRangeオブジェクトにはInt値の範囲を格納できる型
//0~10までの範囲を格納できる val ran: IntRange = 1..10 //for文などの条件式として使用できる for(i in ran){ }
ってことで書き換えてみた
for(i in nameList.indices){ }
こりゃ便利!コレクションではこれを使っていこうと思う。
ちなみに
ちなみに条件式に、リストのサイズをそのまま
for(i in 0..nameList.size)
とすると、”インデックス”ではなく”要素数”を取得してしまうので
リストへのアクセス中にArrayIndexOutOfBoundsExceptionが発生する。