반응형
Map.entrySet()
- 보통 Map은 keySet()으로 키만 가져오거나 values()로 값만 가져올 수 있음
- 키와 값이 함께 필요할 때 entrySet() 사용
- entrySet()을 사용하면 Map에 있는 <Key, Value> 쌍을 Set<Map.Entry<K, V>> 형태로 반환
- getKey(), getValue()메소드를 사용해 각각 키와 값을 얻을 수 있음
package Map;
import java.util.HashMap;
import java.util.Map;
public class EntrySet {
public static void main(String[] args){
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 3);
map.put("Banana", 5);
map.put("Cherry", 7);
//entrySet()을 사용해 전체 출력
for(Map.Entry<String, Integer> entry : map.entrySet()){
System.out.println("Key: " + entry.getKey() + " Value: " + entry.getValue());
}
}
}
Key: Apple Value: 3
Key: Cherry Value: 7
Key: Banana Value: 5
Map.keySet()
- Map에 저장된 모든 키(key)만 모아서 Set<K> 형태로 반환하는 메소드
- Map에서 모든 키를 가져와서 반복문을 돌리거나 특정 키를 찾을 때 유용
- 반복문에서 map.get(key)를 계속 호출하면 성능이 저하됨 -> entrySet()을 사용해 한 번에 키-값을 가져와야 함
- 반환된 Set을 수정하면 Map도 변경됨 -> map.keySet().remove("Apple")을 하면 map에서도 "Apple"이 삭제됨
package Map;
import java.util.HashMap;
import java.util.Map;
public class KeySet {
public static void main(String[] args){
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 3);
map.put("Banana", 5);
map.put("Cherry", 7);
//keySet()을 사용하여 전체 키 출력
for(String key : map.keySet()){
System.out.println(key);
}
}
}
Apple
Cherry
Banana
Map.get()
- 주어진 키(key)에 해당하는 값을 반환하는 메소드
- Map에서 특정 키에 저장된 값을 가져올 때 사용
package Map;
import java.util.HashMap;
import java.util.Map;
public class Get {
public static void main(String[] args){
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 3);
map.put("Banana", 5);
map.put("Cherry", 7);
System.out.println("Apple 개수 : " + map.get("Apple"));
System.out.println("Banana 개수 : " + map.get("Banana"));
System.out.println("Grape 개수 : " + map.get("Grape"));
}
}
Apple 개수 : 3
Banana 개수 : 5
Grape 개수 : null
Map.values()
- 해당 map의 value 목록을 Collection<V> 형태로 return
- key는 필요 없고 값만 갖고 오고 싶을 때 유용
- 중복이 있어도 모두 포함됨
package Map;
import java.util.HashMap;
import java.util.Map;
public class Values {
public static void main(String[] args){
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 3);
map.put("Banana", 5);
map.put("Cherry", 7);
//values()를 사용하여 전체 값 출력
for(Integer value : map.values()){
System.out.println(value);
}
}
}
3
7
5
Map.entrySet().Iterator()
- Map의 key-value 쌍(Entry)을 순차적으로 탐색할 수 있도록 Iterator를 반환하는 코드
- Map을 Iterator를 사용해 반복하면서 요소를 하나씩 가져오거나 삭제할 때 유용
- 요소 삭제가 필요할 때 사용하면 좋음 -> 요소 삭제 시 안전함
- map.entrySet() -> Set<Map.Entry<K, V>> 반환
- .Iterator() -> set에 대한 Iterator<Map.Entry<K, V>> 생성
package Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class EntrySetIterator {
public static void main(String[] args){
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 3);
map.put("Banana", 5);
map.put("Cherry", 7);
Iterator<Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<String, Integer> entry = iterator.next();
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
Apple 3
Cherry 7
Banana 5
forEach()
- Map의 각 요소(key-value)를 순회하는 메소드
- Java 8부터 람다식(Lambda Expression)을 활용한 forEach() 메소드 도입
- 단순 조회 시 사용하면 좋음
- 내부적으로 entrySet()을 사용함
package Map;
import java.util.HashMap;
import java.util.Map;
public class ForEach {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 3);
map.put("Banana", 5);
map.put("Cherry", 7);
map.forEach((key, value) -> {
System.out.print(key + " " + value);
});
}
}
Apple 3
Cherry 7
Banana 5
반응형
'JAVA > Coding Test 준비' 카테고리의 다른 글
[프로그래머스, SQL] 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2025.03.25 |
---|---|
[프로그래머스, JAVA] 의상 (0) | 2025.03.22 |
[프로그래머스, JAVA] 전화번호 목록 (0) | 2025.03.19 |
[프로그래머스, JAVA] 완주하지 못한 선수 (0) | 2025.03.19 |
[프로그래머스, JAVA] 연속된 수의 합 (0) | 2025.03.19 |