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 인터페이스를 사용하면 된다.
반응형
'Java' 카테고리의 다른 글
[Java] Java의 가변인자? 함수에 파라미터 여러개 전달하기 (0) | 2021.07.24 |
---|---|
[Java] Java - Properties 컬렉션 매핑 (0) | 2021.01.21 |
[Java] 프레임워크와 라이브러리의 차이 (0) | 2021.01.07 |
[Java] 동기와 비동기의 개념과 차이 (0) | 2021.01.07 |
[Java] 자바 클래스 로딩 절차 (0) | 2021.01.06 |