Mapインターフェース
Mapインターフェースはキーと値をセットにして使用するクラスです(インターフェースクラス)
Listインターフェースと同じように、MapインターフェースをimplementsしているクラスをMap型の変数で扱うことができます。
JSなどで「連想配列」などと呼ばれているものと似ています。しかし別物です。使い方は、putメソッドで値をセット、getメソッドで取得するといった形で使用します。下の動画は、Mapインターフェースの使い方を実行してみたものです。
コードはこんな感じです。
Map<String, Integer> hashMap = new HashMap<String, Integer>(); hashMap.put("C", new Integer(3)); hashMap.put("B", new Integer(2)); hashMap.put("A", new Integer(1)); hashMap.forEach(new BiConsumer<String, Integer>() { @Override public void accept(String t, Integer u) { System.out.println("Key: "+ t + " / Value: " + u); } }); Map<String, Integer> linkedMap = new TreeMap<String, Integer>(); linkedMap.put("C", new Integer(3)); linkedMap.put("B", new Integer(2)); linkedMap.put("A", new Integer(1)); linkedMap.forEach(new BiConsumer<String, Integer>() { @Override public void accept(String t, Integer u) { System.out.println("Key: "+ t + " / Value: " + u); } });
<実行結果>
Key: A / Value: 1
Key: B / Value: 2
Key: C / Value: 3
Key: A / Value: 1
Key: B / Value: 2
Key: C / Value: 3
昔のMapでは、HashMapの場合はソートせず、TreeMapはコレクション・フレームワーク側でソート(並べ替え)をしてくれていたんだけど、今はHashMapもソートしてくれるようで。。。
ほぼ違いがない、
<ポイント>
Map<キー, 値>で宣言します。キーと値をセットして取り出したり登録したり。。。こんな感じで使用します。Gitにソースをアップしています。
Mapインターフェースの実装クラスの一つ「」の操作を行ってみました。Hashtableクラスの実装でもあります。