Java でマップの各要素を反復処理する方法

  1. Java で Map 要素を反復処理する方法
  2. Java で for-loop を用いて Map 要素を反復処理する
  3. Java で foreach を用いて Map 要素を反復処理する
  4. Java の EntryIterator を用いた Map 要素の反復処理する
  5. Java の for-eachkeySet() を用いて Map 要素を繰り返し処理する
  6. Java で while-loop を使って Map 要素を反復処理する
  7. Java における StreamforEach を用いた Map 要素の反復処理
  8. Java で forEachLambda を使ったマップ要素の反復処理

このチュートリアルでは、マップの各要素を反復処理する方法と、それを理解するためのコード例を紹介します。

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 の EntryIterator を用いた Map 要素の反復処理する

iterator() メソッドは要素をトラバースするために Iterator を返し、EntryMap のエントリを収集するために使用されます。

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-eachkeySet() を用いて 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 における StreamforEach を用いた 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 で forEachLambda を使ったマップ要素の反復処理

ラムダ式を使ってマップの要素を反復処理することもできます。ここでは、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 で JSON をマップに変換する方法
  • 関連記事 - Java Collection

  • Java で JSON をマップに変換する方法
  • comments powered by Disqus