こんにちは、さるまりんです。
Javaの小ネタです。
こんなマップがあります。
Map<String, String> map = Map.of(
"JPN", "日本",
"USA", "アメリカ",
"FRA", "フランス",
"DEU", "ドイツ",
"ESP", "スペイン",
"AUS", "オーストラリア",
"FIN", "フィンランド",
"ATA", "南極");
キーが3文字の国コード、値が国名です。
これをループして一つずつ出力していきます。
まずはIterator
を使ってキーで繰り返していく方法です。
Iterator<String> ite = map.keySet().iterator();
while(ite.hasNext()) {
String key = ite.next();
System.out.println(key + " -> " + map.get(key));
}
実行すると下が出力されました。
AUS -> オーストラリア
ESP -> スペイン
USA -> アメリカ
DEU -> ドイツ
FRA -> フランス
JPN -> 日本
FIN -> フィンランド
ATA -> 南極
次は拡張for
文でやってみます。
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " -> " + entry.getValue());
}
実行した出力です。
DEU -> ドイツ
USA -> アメリカ
ESP -> スペイン
AUS -> オーストラリア
ATA -> 南極
FIN -> フィンランド
JPN -> 日本
FRA -> フランス
今度はforEach
でやってみます。
map.forEach((key, value) -> {
System.out.println(key + " -> " + value);
});
実行結果は次のとおり。
AUS -> オーストラリア
ATA -> 南極
FIN -> フィンランド
JPN -> 日本
FRA -> フランス
DEU -> ドイツ
USA -> アメリカ
ESP -> スペイン
全て順番は違いますが、「キー -> 値」と表示されていますね。
同じことをするにもいろんな方法がありますね。
ちなみにSortedMap
を実装したTreeMap
を使うと、出力は全て
ATA -> 南極
AUS -> オーストラリア
DEU -> ドイツ
ESP -> スペイン
FIN -> フィンランド
FRA -> フランス
JPN -> 日本
USA -> アメリカ
と、キーで並んで表示されました。
TreeMapを使ったマップの初期化部分はこちらです。
Map<String, String> map = new TreeMap<String, String>(){{
put("JPN", "日本");
put("USA", "アメリカ");
put("FRA", "フランス");
put("DEU", "ドイツ");
put("ESP", "スペイン");
put("AUS", "オーストラリア");
put("FIN", "フィンランド");
put("ATA", "南極");
}};
読んでくださってありがとうございます。
それではまた!