Java でマップの各要素を繰り返し処理する方法
-
Java で
Map
要素を繰り返し処理する方法 -
Java で
for-loop
を用いてMap
要素を繰り返し処理する -
Java で
foreach
を用いてMap
要素を繰り返し処理する -
Java の
Entry
とIterator
を用いたMap
要素の繰り返し処理する -
Java の
for-each
とkeySet()
を用いてMap
要素を繰り返し処理する -
Java で
while-loop
を使ってMap
要素を繰り返し処理する -
Java における
Stream
とforEach
を用いたMap
要素の繰り返し処理 -
Java で
forEach
とlambda
を使ったマップ要素の繰り返し処理
このチュートリアルでは、マップの各要素を繰り返し処理する方法と、それを理解するためのコード例を紹介します。
Java で Map
要素を繰り返し処理する方法
マップは、キーと値のペアの形でデータを収集するためのインタフェースです。Java には、for-loop
、for-each loop
、while-loop
、forEach()
メソッドなど、マップ要素を繰り返し処理するためのいくつかの方法が用意されています。例を見てみましょう。
Java で for-loop
を用いて Map
要素を繰り返し処理する
単純な for-loop
を用いて Map
要素の繰り返し処理を行う。ここでは、ループの中でエントリを取得するために iterator()
メソッドを用います。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(10, "Ten");
map.put(100, "Hundred");
map.put(1000, "Thousand");
for (Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator();
entries.hasNext();) {
Map.Entry<Integer, String> entry = entries.next();
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
出力:
100 : Hundred
1000 : Thousand
10 : Ten
Java で foreach
を用いて Map
要素を繰り返し処理する
マップの各エントリを繰り返し処理するには、for-each
ループと entrySet()
メソッドを用います。entrySet()
メソッドはマップのエントリの集合を返します。
import java.util.HashMap;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(10, "Ten");
map.put(100, "Hundred");
map.put(1000, "Thousand");
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
出力:
100 : Hundred
1000 : Thousand
10 : Ten
Java の Entry
と Iterator
を用いた Map
要素の繰り返し処理する
iterator()
メソッドは要素をトラバースするために Iterator
を返し、Entry
は Map
のエントリを収集するために使用されます。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(10, "Ten");
map.put(100, "Hundred");
map.put(1000, "Thousand");
Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<Integer, String> entry = entries.next();
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
出力:
100 : Hundred
1000 : Thousand
10 : Ten
Java の for-each
と keySet()
を用いて Map
要素を繰り返し処理する
keySet()
メソッドは Map
のキーの集合を収集するために用いられ、さらに for-each
ループを用いて繰り返し処理を行うために用いられます。
import java.util.HashMap;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(10, "Ten");
map.put(100, "Hundred");
map.put(1000, "Thousand");
for (Integer key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
}
}
出力:
100 : Hundred
1000 : Thousand
10 : Ten
Java で while-loop
を使って Map
要素を繰り返し処理する
ここでは、iterator()
メソッドを用いてキーのイテレータを取得し、while
ループを用いてキーの繰り返し処理を行う。キーの値を取得するには get()
メソッドを用います。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(10, "Ten");
map.put(100, "Hundred");
map.put(1000, "Thousand");
Iterator<Integer> itr = map.keySet().iterator();
while (itr.hasNext()) {
Integer key = itr.next();
System.out.println(key + " : " + map.get(key));
}
}
}
出力:
100 : Hundred
1000 : Thousand
10 : Ten
Java における Stream
と forEach
を用いた Map
要素の繰り返し処理
ストリームを用いて要素の繰り返し処理を行うことができます。ここでは、entrySet()
を用いて、ストリームの forEach()
メソッドを経由してさらに巡回するマップエントリを収集しています。
import java.util.HashMap;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(10, "Ten");
map.put(100, "Hundred");
map.put(1000, "Thousand");
map.entrySet().stream().forEach(System.out::println);
}
}
出力:
100=Hundred
1000=Thousand
10=Ten
Java で forEach
と lambda
を使ったマップ要素の繰り返し処理
ラムダ式を使ってマップの要素を繰り返し処理することもできます。ここでは、forEach()
メソッドの中でラムダ式を使っています。
import java.util.HashMap;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(10, "Ten");
map.put(100, "Hundred");
map.put(1000, "Thousand");
map.forEach((key, value) -> System.out.println(key + " : " + value));
}
}
出力:
100 : Hundred
1000 : Thousand
10 : Ten
関連記事 - Java Map
- Java のインクリメント マップ
- Java でマップ値をリストに変換する
- Java でのマップフィルタリング
- Java でリストをマップに変換する
- Java で順序付きマップを作成する
- Java でマップを作成する