◆JAVA/자료구조
[Java] HashMap 메소드
쿠키린
2023. 2. 9. 10:56
import java.util.HashMap;
import java.util.Map.Entry;
public class MapTest { //key 값과 value 값 출력하기
public static void main(String[] args) {
HashMap<Integer, String> map = new HashMap<Integer, String>(){{
put(1,"사과");
put(2,"바나나");
put(3,"포도");
}};
System.out.println(map); //{1=사과, 2=바나나, 3=포도}
System.out.println(map.get(1)); //사과
//entrySet() 활용
for(Entry<Integer, String> entry : map.entrySet()) {
System.out.println("[KEY] : "+entry.getKey() + " [Value] : "+entry.getValue());
}
// [KEY] : 1 [Value] : 사과
// [KEY] : 2 [Value] : 바나나
// [KEY] : 3 [Value] : 포도
/*
* 정리
* 1) 특정 key값의 value를 가져오고 싶다면 get(key)를 사용하면 됨
* 2) 전체 출력하려고 한다면 entrySet() 또는 keySet() 메소드를 활용하요 Map의 객체를 반환받은 후 출력
* 3) entrySet()은 key와 value 모두 필요한 경우 사용
* */
//KeySet() 활용
for(Integer i : map.keySet()) {
System.out.println("[Key] : "+i +" [Value] : "+map.get(i));
}
// [Key] : 1 [Value] : 사과
// [Key] : 2 [Value] : 바나나
// [Key] : 3 [Value] : 포도
/*
* 4) KeySet()은 key값만 필요할 경우 사용하는데 key값만 받아서 get(key)를 활용하여 value도 출력할 수도 있기에 어떤 메소드를 선택하든지 간에
* 큰 상관이 없어 대부분 코드가 간단한 KeySet을 활용하시던데 key값을 이용해서 value를 찾는 과정에서 시간이 많이 소모되고 많은 양의 데이터를 가져ㅑ와야한다면
* entrySet()이 좋다(약 20% ~ 200% 성능 저하가 있다)
* */
}
}
🔽HashMap의 전체 출력 시 반목문을 사용하지 않고 Interator를 사용해도된다.
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class MapIterator {
public static void main(String[] args) {
//HashMap의 전체 출력 시 반목문을 사용하지 않고 Interator를 사용해도된다.
HashMap<Integer, String> map = new HashMap<Integer, String>(){{
put(1,"사과");
put(2,"바나나");
put(3,"포도");
}};
//entrySet().iterator()
Iterator<Entry<Integer, String>> entries = map.entrySet().iterator();
while(entries.hasNext()) {
Map.Entry<Integer, String> entry = entries.next();
System.out.println("[Key]: "+entry.getKey() + " [Value]: "+entry.getValue());
}
// [Key]: 1 [Value]: 사과
// [Key]: 2 [Value]: 바나나
// [Key]: 3 [Value]: 포도
//KeySet().iterator()
Iterator<Integer> keys = map.keySet().iterator();
while(keys.hasNext()) {
int key = keys.next();
System.out.println("[Key] : "+key+ " [Value]: "+map.get(key));
}
// [Key] : 1 [Value]: 사과
// [Key] : 2 [Value]: 바나나
// [Key] : 3 [Value]: 포도
}
}