KotlinでMapから値を取得する方法について記載します。
目次
Mapから値を取得する方法
Map から値を取得するには、次の方法があります。
① キーを直接指定する
② getValue 関数を使用する
③ getOrDefault 関数を使用する
1. 使い分けのポイント
それぞれの方法で、該当するキーが存在しないときの動作に違いがあります。
① キーを直接指定する
null が返ります。
② getValue 関数を使用する
例外( NoSuchElementException )が発生します。
③ getOrDefault 関数を使用する
引数で指定した、デフォルト値が返ります。
2. キーを直接指定する
書式
変数[キー値]
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
val mapStr = mapOf( "key1" to "value1", "key2" to "value2", "key3" to "value3" ) // keyを指定して値を取得( キーが存在する ) val val1 = mapStr["key1"] println( val1 ) // value1 // keyを指定して値を取得( キーが存在しない場合は null が返る ) val val2 = mapStr["key10"] println( val2 ) // null |
3. getValue 関数を使用する
書式
変数.getValue( キー )
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
val mapStr = mapOf( "key1" to "value1", "key2" to "value2", "key3" to "value3" ) // getValue関数を使用する val val3 = mapStr.getValue("key2") println( val3 ) // value2 // getValue関数を使用する( キーが存在しない場合、NoSuchElementException例外が返る ) try{ val val4 = mapStr.getValue("key10") }catch ( e : NoSuchElementException ){ println( e ) // java.util.NoSuchElementException: Key key10 is missing in the map. } |
4. getOrDefault 関数を使用する
書式
mapStr.getOrDefault ( キー, デフォルト値 )
実行例
1 2 3 4 5 6 7 8 |
val mapStr = mapOf( "key1" to "value1", "key2" to "value2", "key3" to "value3" ) // キーが存在しない場合、デフォルト値が返るようにする val val5 = mapStr.getOrDefault ( "key10", "デフォルト値を指定" ) println( val5 ) // デフォルト値を指定 |