【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という型に値を格納することになる。

コメント

このブログの人気の投稿

【KotlinとJava】分解宣言

wxPythonでのモーダルダイアログ作成

【Delphi Sample】並列プログラミング1