#16 Kotlinで学ぶ辞書型(マップ)の基本

Kotlinで名前と値の組み合わせを扱うには、MapというJavaと似た仕組みを、より簡潔な書き方で使えます。この記事では、Kotlinにおける辞書に相当する使い方と、安全な値の取り出し方を解説します。

Mapを作ってみる

val scores = mapOf("太郎" to 90, "次郎" to 85)

toという単語を使って、キーと値を組み合わせるのがKotlinらしい書き方です。mapOfは変更できないMapを作ります。

変更できるMap

val scores = mutableMapOf<String, Int>()
scores["太郎"] = 90
scores["次郎"] = 85

値を取り出す

val score = scores["太郎"]

存在しないキーを指定した場合、結果はnull許容型として返されます。既定値をあらかじめ決めておきたい場合はgetOrDefaultが便利です。

val score = scores.getOrDefault("三郎", 0)

キーの有無を確認する

if (scores.containsKey("太郎")) {
    println("太郎さんのデータがあります")
}

全てのキーと値を順に処理する

for ((key, value) in scores) {
    println("$key: $value")
}

scores.forEach { (key, value) -> println("$key: $value") }のように、forEachを使った書き方もできます。

Kotlinならではの注意点

以前の記事で触れたListとMutableListの関係と同じように、Kotlinでは変更できないMap(mapOf)と変更できるMutableMap(mutableMapOf)を使い分けます。基本は変更できないMapを使うのがKotlinらしい書き方です。関数にMapを渡す場合、受け取った側で誤って中身を書き換えられる心配がないため、バグを防ぎやすくなります。

Mapを加工する

すべての値に処理をしたい場合はmapValues、条件に合う要素だけ残したい場合はfilterが使えます。

val doubled = scores.mapValues { it.value * 2 }
val passed = scores.filter { it.value >= 80 }

まとめ

Kotlinの辞書はmapOf・mutableMapOfで作り、toを使ってキーと値を組み合わせます。getOrDefaultで安全に値を取り出し、mapValues・filterで柔軟に加工できることも覚えつつ、変更の要不要で使い分けましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Kotlinをもっと学びたい方には「やさしいKotlin入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本