【KotlinとJava】Mapクラスを使う
KotlinとJava
今回はKotlinにおける、Mapをざっと見てみよう。念のために、Mapの概念を説明しておこう。Mapというのは一言でいうと「名前の付けられる配列」である。言語によっては辞書や連想配列などと呼ばれる。辞書を引くときは単語や語句から意味を調べるから、イメージしやすいだろう。
Traversing a map.kt
fun main(args: Array<String>) {
val map = hashMapOf<String, Int>()
map.put("one", 1)
map.put("two", 2)
for ((key, value) in map) {
println("key = $key, value = $value")
}
}
map
という変数にhashMapOf
という関数を利用してMapのインスタンスを格納している。型推論によってMap型
というのが分かるので、変数には型を指定する必要がない。
for文
のところでも以前紹介した分解宣言が登場している。mapは文字列と整数のペアで構成されているので、分解宣言によってその二つの要素にアクセスできるということだ。
Javaで記述
対比ができるようにJavaでも同じものを記述してみよう。
public class Exp15 {
public static void main(String[] args) {
final Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);
for (Map.Entry<String, Integer> m : map.entrySet()) {
String template = "key = %s, value = %d";
System.out.println(String.format(template, m.getKey(), m.getValue()));
}
}
}
Javaには分解宣言という仕組みがないので、for文
で一つ一つの要素にアクセスするときはEntry
という型に値を格納することになる。
コメント
コメントを投稿