Java

[Java] Java Map 타입 매핑하기

Razelo 2021. 1. 21. 16:39

Map 컬렉션을 사용하는 예제를 작성하던 중 

 

Map 객체에 이터레이터를 쓰는 둥 다양한 방법이 나와있어서 올려둔다. 

 

package com.springbook.ioc.injection;
import java.util.Iterator;
import java.util.Map;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class CollectionBeanClient {
	public static void main(String[] args) {
		AbstractApplicationContext factory = new GenericXmlApplicationContext("applicationContext.xml");
		
		CollectionBean bean = (CollectionBean)factory.getBean("collectionBean");
		Map<String,String> addressList = bean.getAddressList();
		//방법1
		for(Map.Entry<String,String> entry:addressList.entrySet())
			System.out.println("[key]: "+entry.getKey() + ", [value]: "+entry.getValue());
		 
		
		//방법2
		for(String key: addressList.keySet()) {
			String value=addressList.get(key);
			System.out.println("[key]: "+key+", [value]: "+value);
		}
		
		//방법3
		Iterator<Map.Entry<String,String>> iteratorE = addressList.entrySet().iterator();
		while(iteratorE.hasNext()) {
			Map.Entry<String,String> entry = (Map.Entry<String,String>) iteratorE.next();
			String key = entry.getKey();
			String value = entry.getValue();
			System.out.println("[key]: "+key+", [value]: "+value);
		}
		
		//방법4
		Iterator<String> iteratorK = addressList.keySet().iterator();
		while(iteratorK.hasNext()) {
			String key = iteratorK.next();
			String value = addressList.get(key);
			System.out.println("[key]: "+key+", [value]: "+value);
		}
		
		factory.close();
	}
}

 

Map에 값을 전체 출력하기 위해서는 entrySet(), keySet() 메소드를 사용하면 되는데 entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용하고, keySet() 메서드는 key의 값만 필요한 경우 사용한다. 

 

Iterator 인터페이스를 사용할 수 없는 컬렉션인 Map에서 Iterator 인터페이스를 사용하기 위해서는 Map에 entrySet(), keySet() 메소드를 사용하여 Set 객체를 반환받은 후 Iterator 인터페이스를 사용하면 된다. 

반응형