프로그래밍 언어/JAVA
[JAVA] Map에서 key, value 꺼내기 (entrySet, keySet, Iterator)
s워니얌
2023. 7. 10. 14:53
Map에 값을 전체 출력하기 위해서는 entrySet(), keySet() 메서드를 사용하면 되는데 entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용하고, keySet() 메서드는 key의 값만 필요한 경우 사용한다.
📑 1. Iterator 사용 1 - keySet() : key 출력
keySet은 HashMap에 저장된 모든 키가 저장된 Set을 반환한다. 반환된 값들을 iterator()를 이용해 Collection의 Iterator를 얻어서 반환한다. Iterator는 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화한 것이다.
package parser;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class MapEx {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("1번 key", "1번 value");
map.put("2번 key", "2번 value");
map.put("3번 key", "3번 value");
map.put("4번 key", "4번 value");
map.put("5번 key", "5번 value");
// 1. Iterator 사용 1 - keySet()
// keySet() : HashMap에 저장된 모든 키가 저장된 Set을 반환
Iterator<String> keys = map.keySet().iterator();
while(keys.hasNext()) {
String key = keys.next();
System.out.println("key : " + key);
}
}
}
📑 2. Iterator 사용 2 - entrySet() : key/value 출력
entrySet은 HashMap에 저장된 모든 키와 값이 저장된 Set을 반환한다.
package parser;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapEx {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("1번 key", "1번 value");
map.put("2번 key", "2번 value");
map.put("3번 key", "3번 value");
map.put("4번 key", "4번 value");
map.put("5번 key", "5번 value");
//2. Iterator 사용 2 - entrySet()
Set set = map.entrySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Entry<String, String> entry = (Entry)iterator.next();
String key = (String)entry.getKey();
String value = (String)entry.getValue();
System.out.print("key: " + key);
System.out.println(" value: " + value);
}
}
}
📑 3. 확장 for문 출력 - entrySet : key/value 출력
확장 for문을 이용하여 map에 있는 key value를 Entry형태의 elem 변수에 값을 넣는다. 2번 코드보다 훨씬 간결하다.
package parser;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapEx {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("1번 key", "1번 value");
map.put("2번 key", "2번 value");
map.put("3번 key", "3번 value");
map.put("4번 key", "4번 value");
map.put("5번 key", "5번 value");
//3. entrySet() : key/value
for(Entry<String, String> elem : map.entrySet()){
System.out.println("키 : " + elem.getKey() + "값 : " + elem.getValue());
}
}
}
반응형