본문 바로가기
Dev. Cookbook/Java, JSP

[Java] Map Collection 전체 조회 하는 방법 3가지

by breezyday 2022. 6. 11.

Java의 Collection은 여러 가지 자료구조를 지원하고 있으며 그중에서 Map도 아주 자주 사용하는 Collection 중 하나입니다.

 

Map은 Key와 Value로 이루어진 자료 구조로 간편하게 Key와 Value가 모두 String으로 이루어진 형태도 많이 사용하고 있습니다. 대표적인 것이 Property 파일과 같은 데이터를 다룰 때 사용할 수 있겠습니다. Map은 여러 가지 형태의 자료구조로 구성이 가능하지만 여기서는 간단히 String으로만 이루어진 Map을 다루도록 하겠습니다.

 

1. Map 자료 입력

Map<String, String> map = new HashMap<String, String>();
		
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
map.put("key4", "value4");

 

Map은 Key와 Value로 이루어져 있습니다.

put 메서드를 사용하여 Map에 자료를 입력할 수 있습니다.

 

2. Map 전체 조회

2.1 Iterator 사용

Iterator<String> itor = map.keySet().iterator();
while (itor.hasNext()) {
	String key   = itor.next();
	String value = map.get(key);
			
	System.out.println(key + " - " + value);
}

 

map의 keySet에서 iterator를 가져와 사용할 수 있습니다.

while 문을 사용하여 iterator에 더 이상 값이 없을 때까지 조회하고 출력합니다.

 

2.2 Enhanced For문 + Entry 사용

for (Entry<String, String> elem : map.entrySet()) {
	String key   = elem.getKey();
	String value = elem.getValue();
			
	System.out.println(key + " - " + value);
}

 

Map에서 entrySet을 사용해서 각 Entry를 조회할 수 있습니다.

이를 Enhanced For문을 사용해서 조회하고 출력합니다.

 

2.3 Enhanced For문

for (String key : map.keySet()) {
	String value = map.get(key);
		
	System.out.println(key + " - " + value);
}

 

Map에서 Key값은 String혹은 숫자를 자주 사용하게 됩니다. 

Map에서 KeySet의 값을 Enhanced For문으로 차례대로 조회하고 출력합니다.

 

3. 전체 프로그램 코드

package codetest;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

public class Main {

	public static void main(String[] args) {
		
		Map<String, String> map = new HashMap<String, String>();
		
		map.put("key1", "value1");
		map.put("key2", "value2");
		map.put("key3", "value3");
		map.put("key4", "value4");
		
		System.out.println("방법1 : Iterator 사용");
		// Iterator 사용
		Iterator<String> itor = map.keySet().iterator();
		while (itor.hasNext()) {
			String key   = itor.next();
			String value = map.get(key);
			
			System.out.println(key + " - " + value);
		}
		System.out.println("-----------------------------------");
		
		System.out.println("방법2 : Enhanced For문 + Entry 사용");
		// Enhanced for문 + Entry 사용
		for (Entry<String, String> elem : map.entrySet()) {
			String key   = elem.getKey();
			String value = elem.getValue();
			
			System.out.println(key + " - " + value);
		}
		System.out.println("-----------------------------------");
		
		System.out.println("방법3 : Enhanced For문 사용");
		// Enhanced for문 사용
		for (String key : map.keySet()) {
			String value = map.get(key);
			
			System.out.println(key + " - " + value);
		}
	}
}

 

 

 

 

 

 

댓글