1
1

【Java・学習ログ17】コレクションについて~Mapの基本~

Posted at

≪使用教材≫スッキリわかるJava入門 第3版 スッキリわかるシリーズ 『第16章』

Mapの使い方

マップとは2つの情報をキーのペアとして格納するデータ構造。格納した値はキーを指定して読み書きできる。実装の中でも特に多く利用されるのは、java.util.HashMapクラス。

《HashMapが備えるメソッド》

操作 戻り値 メソッド 意味
追加 put(キー,値) マップにキーと値のペアを格納する
取得 get(キー) キーに対応する値を取得(なければnull)
調査 int size() 格納されているペア数を数える
boolean isEmpty() 要素数がゼロであるかを判定
boolean containsKey(キー) 指定データがキーに含まれているかを判定
boolean containsValue(値) 指定データが値に含まれているかを判定
削除 void clear() 要素をすべて削除する
remove(キー) 指定した内容の要素を削除する
その他 Set<キー> keySet() 格納されているキーの一覧を返す

なお、Mapでは値の重複は許されるが、キーの重複は許されない。同じキーで異なる値をput()すると、後から格納した値で上書きされてしまうので注意が必要。

import java.util.HashMap;
import java.util.Map;

public class Main {
	public static void main(String[] args) {
		Map<String, Integer> prefs = new HashMap<String, Integer>();
		prefs.put("京都府", 255);
		prefs.put("東京都", 1261);
		prefs.put("熊本県", 181);
		int tokyo = prefs.get("東京都"); // キーを指定し値を取得
		System.out.println("東京都の人口は、" + tokyo);
		prefs.remove("京都府"); // 削除
		prefs.put("熊本県", 182); // 値を上書き
		int kumamoto = prefs.get("熊本県");
		System.out.println("熊本県の人口は、" + kumamoto);	
	}
}

【実行結果】
スクリーンショット 2024-01-04 172630.png

中身を1つずつ取り出す

ListやSetと同様の方法で取り出そうとするとエラーが出てしまう。
マップに格納されたデータを1つずつ取り出すには、「キーの一覧を取得してから、各キーについて対応する値を取得」の2段階手続きをする方法が踏襲しやすい。

import java.util.HashMap;
import java.util.Map;

public class Main {
	public static void main(String[] args) {
		Map<String, Integer> prefs = new HashMap<String, Integer>();
		prefs.put("京都府", 255);
		prefs.put("東京都", 1261);
		prefs.put("熊本県", 181);
		for(String key : prefs.keySet()) {
			int value = prefs.get(key);
			System.out.println(key + "の人口は、" + value);
		}
	}
}

スクリーンショット 2024-01-04 173449.png


1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1