どうも、ちょげ(@chogetarou)です。
Map(マップ)をforループする方法を紹介します。
方法

Map(マップ)をforループする方法は、3つあります。
キーと値のペア
1つ目は、キーと値のペアをforループ方法です。
まず、for(変数 in map){}
のように、for文のループ対象にMapを指定します。
そして、for文の{}内にループ処理を指定します。
ループ処理内では、ループ変数のkeysでMapのキー、ループ変数のvalueでMapの値を取得できます。
for (item in map) {
//ループ処理
//item.keyでmapのキーを取得
//item.valueでmapの値を取得
}
上記のforループは、Mapの要素をEntryとしてforループします。
もし、Mapのキーと値を別々の変数で扱いたい場合は、(key, value)のような2つの変数を記述した()をinの左辺に指定します。
for ((key, value) in map) {
//ループ処理
//keyでmapのキーを取得
//valueでmapの値を取得
}
使用例1
fun main() {
val numbers = mapOf(
"one" to 1,
"two" to 2,
"three" to 3,
"four" to 4,
"five" to 5
)
for (entry in numbers) {
println("${entry.key} :${entry.value}")
}
}
出力:
one : 1
two : 2
three : 3
four : 4
five : 5
使用例2
fun main() {
val numbers = mapOf(
"one" to 1,
"two" to 2,
"three" to 3,
"four" to 4,
"five" to 5
)
for ((key, value) in numbers) {
println("$key = $value")
}
}
出力
one = 1
two = 2
three = 3
four = 4
five = 5
キーのみ
2つ目は、キーのみをループする方法です。
まず、for(変数 in map.keys){}
のように、for文のループ対象にMapのkeysプロパティを指定します。
そして、for文の{}内にループ処理を指定します。
ループ処理内では、ループ変数でMapのキーを取得できます。
for (key in map.keys) {
//ループ処理
//keyでmapのキーを取得
}
上記のforループは、keysプロパティのアクセス元のMapのキーをループします。
使用例
fun main() {
val numbers = mapOf(
"one" to 1,
"two" to 2,
"three" to 3,
"four" to 4,
"five" to 5
)
for (value in numbers.keys) {
println(value)
}
}
出力:
one
two
three
four
five
値のみ
3つ目は、値のみをforループする方法です。
まず、for(変数 in map.values){}
のように、for文のループ対象にMapのvaluesプロパティを指定します。
そして、for文の{}内にループ処理を指定します。
ループ処理内では、ループ変数でMapの値を取得できます。
for (value in map.values) {
//ループ処理
//valueでmapの値を取得
}
上記のforループは、valuesプロパティのアクセス元のMapの値をループします。
使用例
fun main() {
val numbers = mapOf(
"one" to 1,
"two" to 2,
"three" to 3,
"four" to 4,
"five" to 5
)
for (value in numbers.values) {
println(value)
}
}
出力:
1
2
3
4
5
まとめ
Map(マップ)をforループする方法は、次の3つです。
- キーと値のペアをループする方法
for (item in map) { //ループ処理 }
for ((key, value) in map) { //ループ処理 }
- キーのみをループする方法
for (key in map.keys) { //ループ処理 }
- 値のみをループする方法
for (value in map.values) { //ループ処理 }
コメント