[Kotlin]Map(マップ)をforループするには?

Kotlin

どうも、ちょげ(@chogetarou)です。

Map(マップ)をforループする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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) { //ループ処理 }

コメント

タイトルとURLをコピーしました