JavaでHashMapの要素を反復処理する方法|サンプルコード付きで解説
はじめに
この記事では、JavaのHashMapの要素を反復処理(イテレート)する方法について解説します。HashMapは、JavaのMapインターフェースをハッシュテーブルベースで実装したクラスであり、キーと値のペアからなるコレクションです。
HashMapのすべての要素を順に取り出すには、entrySet()メソッドでキーと値のセットを取得し、拡張forループの中でgetKey()およびgetValue()を呼び出すのが一般的な手法です。
実行デモ
プログラムを実行すると、以下のような結果が得られます。
期待される出力:
The elements of the HashMap are: 1 : Java 2 : Python 3 : Scala 4 : Javascript
アルゴリズム
ステップ1 - 処理を開始する ステップ2 - input_map という名前の HashMap を宣言する ステップ3 - 格納する値を定義する ステップ4 - 拡張forループで反復処理を行い、getKey() と getValue() で各エントリーのキーと値を取得する ステップ5 - 結果を表示する ステップ6 - 処理を終了する
例1:すべての処理を main メソッドに記述する方法
まずは、宣言から表示までの一連の処理をすべて main メソッド内に記述したシンプルな例です。
import java.util.HashMap;
import java.util.Map;
public class Demo {
public static void main(String[] args){
System.out.println("Required packages have been imported");
Map<String, String> input_map = new HashMap<String, String>();
input_map.put("1", "Java");
input_map.put("2", "Python");
input_map.put("3", "Scala");
input_map.put("4", "Javascript");
System.out.println("A Hashmap is declared\n");
System.out.println("The elements of the HashMap are: ");
for (Map.Entry<String, String> set : input_map.entrySet()) {
System.out.println(set.getKey() + " : " + set.getValue());
}
}
}
出力結果
Required packages have been imported A Hashmap is declared The elements of the HashMap are: 1 : Java 2 : Python 3 : Scala 4 : Javascript
例2:処理をメソッドにカプセル化する方法
続いて、オブジェクト指向プログラミングのスタイルに沿って、表示処理を独立した静的メソッドに切り出した例を紹介します。処理を部品化することで、再利用性が高まり、コード全体の見通しも良くなります。
import java.util.HashMap;
import java.util.Map;
public class Demo {
static void print(Map<String, String> input_map){
System.out.println("The elements of the HashMap are: ");
for (Map.Entry<String, String> set : input_map.entrySet()) {
System.out.println(set.getKey() + " : " + set.getValue());
}
}
public static void main(String[] args){
System.out.println("Required packages have been imported");
Map<String, String> input_map = new HashMap<String, String>();
input_map.put("1", "Java");
input_map.put("2", "Python");
input_map.put("3", "Scala");
input_map.put("4", "Javascript");
System.out.println("A Hashmap is declared\n");
print(input_map);
}
}
出力結果
Required packages have been imported A Hashmap is declared The elements of the HashMap are: 1 : Java 2 : Python 3 : Scala 4 : Javascript
解説のポイント
- entrySet():HashMapが保持するすべてのキーと値のペア(Map.Entry)を Set として返します。
- getKey() / getValue():それぞれ、エントリーからキーと値を取得します。
- 順序に関する注意:HashMapは要素の順序を保証しないため、表示順が格納順と異なる場合があります。挿入順を維持したい場合は LinkedHashMap の利用を検討しましょう。
- 代替手段:Java 8 以降では、forEach とラムダ式(例:
input_map.forEach((k, v) -> System.out.println(k + " : " + v));)を使うことで、より簡潔に反復処理を記述できます。
-
JavaでHashMapの要素を出力する方法を徹底解説
HashMapとは HashMapはAbstractMapクラスのサブクラスであり、キーと値のペア(キーバリューペア)を格納するために使用されるコレクションクラスです。各キーはマップ内の1つの値に対応付けられ、キーは必ず一意である必要があります。つまり、同一のキーをマップに登録できるのは1回だけで、重複したキーは許可されません。一方、値については、複数の異なるキーに対して同じ値を割り当てることが可能です。 要素の追加にはHashMapクラスのput()メソッドを使用し、格納された要素の取り出し(反復処理)にはIteratorインターフェースを使用します。 put()メソッドの構文 public
-
JavaでMapを反復処理する4つの方法:entrySet、keySet、Iterator、forEach徹底解説
この記事では、JavaでMap(マップ)をループ処理するためのさまざまな方法を紹介します。Java 8以降では、従来のfor文やIteratorクラスに加えて、forEachメソッドを使った簡潔な反復処理も可能になりました。用途に応じて最適な手法を選べるよう、代表的な4つのパターンをサンプルコードとともに解説していきます。 1. エントリー(キーと値)をまとめて反復処理する キーと値の両方を扱いたい場合は、entrySet()メソッドを使うのが最も一般的で効率的な方法です。Map.EntryからgetKey()とgetValue()でそれぞれ取得できます。 Map<Integer, In