Mapは、キーと値の組み合わせで構成されています。ここでは、以下の 3つの場合について、イテレータを使用するものと拡張 for文を使用するものを組み合わせた合計 6種類について見ます。
ソースコードは以下の通り。
W301/W301.java
import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Mapの全要素(キー)を出力します(Iteratorを使用)。 */ public class W301 { /** * メインメソッド。 * @param args 引数 */ public static void main(String[] args) { Map<String, String> weekdays = new HashMap<>(); weekdays.put("Monday", "月曜日"); weekdays.put("Tuesday", "火曜日"); weekdays.put("Wednesday", "水曜日"); weekdays.put("Thursday", "木曜日"); weekdays.put("Friday", "金曜日"); weekdays.put("Saturday", "土曜日"); weekdays.put("Sunday", "日曜日"); for(Iterator<String> iterator = weekdays.keySet().iterator(); iterator.hasNext(); ) { String key = iterator.next(); System.out.println(key); } } }
実行結果の例は以下の通り。
Saturday Thursday Monday Tuesday Wednesday Friday Sunday
拡張 for文に置き換えます。
ソースコードは以下の通り。
W302/W302.java
import java.util.HashMap; import java.util.Map; /** * Mapの全要素(キー)を出力します(拡張 for文を使用)。 */ public class W302 { /** * メインメソッド。 * @param args 引数 */ public static void main(String[] args) { Map<String, String> weekdays = new HashMap<>(); weekdays.put("Monday", "月曜日"); weekdays.put("Tuesday", "火曜日"); weekdays.put("Wednesday", "水曜日"); weekdays.put("Thursday", "木曜日"); weekdays.put("Friday", "金曜日"); weekdays.put("Saturday", "土曜日"); weekdays.put("Sunday", "日曜日"); // 拡張 for文を使用 for(String key : weekdays.keySet()) { System.out.println(key); } } }
実行結果の例は以下の通り。
Saturday Thursday Monday Tuesday Wednesday Friday Sunday
Iteratorを使用する場合は、かなり複雑になります。拡張 for文を使用した例のほうが分かりやすいでしょう。
ソースコードは以下の通り。
W303/W303.java
import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Mapの全要素(キー)を出力します(Iteratorを使用)。 */ public class W303 { /** * メインメソッド。 * @param args 引数 */ public static void main(String[] args) { Map<String, String> weekdays = new HashMap<>(); weekdays.put("Monday", "月曜日"); weekdays.put("Tuesday", "火曜日"); weekdays.put("Wednesday", "水曜日"); weekdays.put("Thursday", "木曜日"); weekdays.put("Friday", "金曜日"); weekdays.put("Saturday", "土曜日"); weekdays.put("Sunday", "日曜日"); // Iteratorを使用 for(Iterator<String> iterator = weekdays.values().iterator(); iterator.hasNext(); ) { String value = iterator.next(); System.out.println(value); } } }
実行結果の例は以下の通り。
土曜日 木曜日 月曜日 火曜日 水曜日 金曜日 日曜日
拡張 for文に置き換えます。
ソースコードは以下の通り。
W304/W304.java
import java.util.HashMap; import java.util.Map; /** * Mapの全要素(値)を出力します(拡張 for文を使用)。 */ public class W304 { /** * メインメソッド。 * @param args 引数 */ public static void main(String[] args) { Map<String, String> weekdays = new HashMap<>(); weekdays.put("Monday", "月曜日"); weekdays.put("Tuesday", "火曜日"); weekdays.put("Wednesday", "水曜日"); weekdays.put("Thursday", "木曜日"); weekdays.put("Friday", "金曜日"); weekdays.put("Saturday", "土曜日"); weekdays.put("Sunday", "日曜日"); // 拡張 for文を使用 for(String value : weekdays.values()) { System.out.println(value); } } }
実行結果の例は以下の通り。
土曜日 木曜日 月曜日 火曜日 水曜日 金曜日 日曜日
Iteratorを使用する場合は、かなり複雑になります。拡張 for文を使用した例のほうが分かりやすいでしょう。
ソースコードは以下の通り。
W305/W305.java
import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Mapの全要素(キーと値)を出力します(Iteratorを使用)。 */ public class W305 { /** * メインメソッド。 * @param args 引数 */ public static void main(String[] args) { Map<String, String> weekdays = new HashMap<>(); weekdays.put("Monday", "月曜日"); weekdays.put("Tuesday", "火曜日"); weekdays.put("Wednesday", "水曜日"); weekdays.put("Thursday", "木曜日"); weekdays.put("Friday", "金曜日"); weekdays.put("Saturday", "土曜日"); weekdays.put("Sunday", "日曜日"); // Iteratorを使用 for(Iterator<Map.Entry<String, String>> iterator = weekdays.entrySet().iterator(); iterator.hasNext(); ) { Map.Entry<String, String> entry = iterator.next(); System.out.println(entry.getKey() + " => " + entry.getValue()); } } }
実行結果の例は以下の通り。
Saturday => 土曜日 Thursday => 木曜日 Monday => 月曜日 Tuesday => 火曜日 Wednesday => 水曜日 Friday => 金曜日 Sunday => 日曜日
拡張 for文に置き換えます。
ソースコードは以下の通り。
W306/W306.java
import java.util.HashMap; import java.util.Map; /** * Mapの全要素(キーと値)を出力します(拡張 for文を使用)。 */ public class W306 { /** * メインメソッド。 * @param args 引数 */ public static void main(String[] args) { Map<String, String> weekdays = new HashMap<>(); weekdays.put("Monday", "月曜日"); weekdays.put("Tuesday", "火曜日"); weekdays.put("Wednesday", "水曜日"); weekdays.put("Thursday", "木曜日"); weekdays.put("Friday", "金曜日"); weekdays.put("Saturday", "土曜日"); weekdays.put("Sunday", "日曜日"); // 拡張 for文を使用 for(Map.Entry<String, String> entry : weekdays.entrySet()) { System.out.println(entry.getKey() + " => " + entry.getValue()); } } }
実行結果の例は以下の通り。
Saturday => 土曜日 Thursday => 木曜日 Monday => 月曜日 Tuesday => 火曜日 Wednesday => 水曜日 Friday => 金曜日 Sunday => 日曜日