■Map型
キーと値を紐づけて格納する。
//書き方
val map = mapOf("キー" to "値","キー" to "値")
■値へのアクセス
List型や配列などはインデックス番号を使って値にアクセスしていました。
Map型はインデックス番号の代わりに値にキーが決められているので
キーを使ってアクセスします。
//キーがtoの左です。
val map = mapOf("炎柱" to "煉獄さん", "水柱" to "富岡さん","蛇柱" to "伊黒さん")
println(map["炎柱"])
//結果: 煉獄さん
println(map["風柱"])
//結果: null
■全てのキーへのアクセス
▼keys
println(map.keys)
//結果: 炎柱,水柱,蛇柱
■全ての値へのアクセス
▼values
println(map.values)
//結果 : 煉獄さん,富岡さん,伊黒さん
■要素数
▼size
println(map.size)
//結果: 3
■MutableMap 可変可能
空のMutableMap()
//キーがString型で値がInt型
val a = mutableMapOf<String,Int>()
//もう一つの書き方
val a: MutableMap<String,Int> = mutableMapOf()
■MutableMapのさまざまな値の追加方法
▼インデックス番号のようにキーを設定、=の右に値を入れる。
a["孫悟空"] = 100
▼put(キー,値)
a.put("ベジータ",200)
▼+=演算子を使用
キー to 値
a += "トランクス" to 400
結果
println(a)
// ["孫悟空" to 100, "ベジータ" to 200, "トランクス" to 400]
■複数のキーと値を追加
▼putAll
キーと値のペアを複数用意したlistOf()を入れる。
a.putAll(listOf("パン" to 500, "悟天" to 600))
▼+=演算子
a += mapOf("パン" to 500, "悟天" to 600)
■値の消去
どっちも同じ処理キーのみでも大丈夫
a.remove("孫悟空")
a.remove("孫悟空",100)
▼全て消去
a.clear()
■ループ処理
for文
▼引数
k = キー
v = 値
for((k,v) in a) {
println("${k}の給料は${v}円です。")
}
▼forEach
a.forEach{(k,v) -> printin("${k}の給料は${v}円です。")}
▼itに引数を置き換えるver
it.Key = キー
it.values = 値
a.forEach{println("${it.key}の給料は${it.values}円です。")}
■List型の中にMap型
空のList型の中に空のMap型
どちらも意味は同じ
//型指定を後に記述
val hoge = mutableListOf<MutableMap<String,String>>()
//型指定を最初に記述
val hoge: MutableList<MutableMap<String,String>> = mutableListOf()
▼値の追加
中身がMap型でも基本はList型なのでaddを使う。
中にMap型のコレクションを書く
変数に先にmap型を代入して変数を渡してもよい
hoge.add(mutableMapOf("いぬ","ねこ"))
▼値の消去
インデックス番号を使って消すのが楽そう
removeAt(インデックス番号)
hoge.removeAt(0)