配列やコレクションに格納された要素は、for
や forEach
を使ってループ処理することができます。
下記の例では配列の要素を for
ループで処理しています。
val arr = arrayOf("AAA", "BBB", "CCC")
for (elem in arr) {
println(elem)
}
配列やコレクション系のクラスには forEach 拡張関数 が定義されているため、for
の代わりに forEach
メソッドを呼び出す形でループ処理することもできます。
ループ処理の内容はラムダ式の形 { elem -> ... }
で渡します。
val list = listOf("AAA", "BBB", "CCC")
list.forEach { elem ->
println(elem)
}
ループ処理中の要素名(イテレータ)を省略した場合は、it
で参照できます。
list.forEach {
println(it)
}
Kotlin には Java や C/C++ のような for (int i = 0; i < n; ++i)
という形式の for
ループは存在しません。
配列やリストの要素をインデックス付き (0, 1, 2, …) でループ処理するには、withIndex()
と組み合わせて下記のようにします。
val arr = arrayOf("AAA", "BBB", "CCC")
for ((index, elem) in arr.withIndex()) {
println("arr[$index] = $elem")
}
arr[0] = AAA
arr[1] = BBB
arr[2] = CCC
マップのキーと値も for
を使ってループ処理することができます。
val map = mapOf("foo" to 100, "bar" to 200, "hoge" to 300)
for ((key, value) in map) {
println("$key => $value")
}
foo => 100
bar => 200
hoge => 300