kotlin 文法_初期値が決まっているhashMap

 


javascriptでの初期値がきまっているような

連想配列は


var dict = {


"key1" : "value1" , 


"key2" : "value2" , 


"key3" : "value3"  


}


というように定義しますが、


これが androidのkotlinのhashmapだとどのように定義するのでしょうか?


mutableListOf に似たようなメソッドを

使うのでしょうか?



KotlinでJavaScriptの連想配列に相当するデータ構造を定義する場合は、

`HashMap`や`mutableMapOf`を使用するのが一般的です。


以下は、それぞれの方法の例です。


---


### 1. **`HashMap` を使用する方法**


```kotlin


val map = hashMapOf(

    "key1" to "value1",

    "key2" to "value2",

    "key3" to "value3"

)


```


---


### 2. **`mutableMapOf` を使用する方法**


```kotlin


val map = mutableMapOf(

    "key1" to "value1",

    "key2" to "value2",

    "key3" to "value3"

)


```


`mutableMapOf`は変更可能なマップ(連想配列)を作成します。


---


### 3. **変更不可なマップを使用する場合**


もし初期値のマップが変更される必要がない場合は、`mapOf`を使用します。


```kotlin


val map = mapOf(

    "key1" to "value1",

    "key2" to "value2",

    "key3" to "value3"

)



```


`mapOf`で作成されたマップはイミュータブル(変更不可)なので、

あとから値を追加・変更することはできません。


---


### 注意点


- `mutableMapOf`と`mapOf`の違いは、

作成されたマップが変更可能かどうかです。


- `to`はKotlinの拡張関数で、ペア(`Pair`)を作成します。


---


### どちらを選ぶべきか?


- 値を動的に変更したい場合 → `mutableMapOf` または `HashMap`


- 初期値だけ定義して変更不要 → `mapOf`



`mutableListOf`はリスト(配列)用なので、連想配列には適していません。


コメント