효율성테스트를 통과하지 못하면서 또 새로운 것을 공부하게 되었다
(이전에 공부한 개념)
** Map 전체를 돌면서 값을 얻기 위해 이전에 사용했던 방법
Map.keySet()
Map<String, String> map = new HashMap<String, String>();
for(String key : map.keySet()) {
String value = map.get(key);
}
- Map.keySet()을 사용하여 키 집합을 얻은 다음 반복
- Map 크기 커지면 성능에 영향을 미침
→ keySet() 메서드를 호출하여 키 집합을 만드는데, 이는 Map의 모든 항목을 이전에 한 번 더 조회하기 때문
** Map.Entry
https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html
- Map에 저장된 모든 key-value 쌍을 각각의 key-value를 갖고 있는 하나의 객체로 얻을 수 있음
- 각각의 객체는 getKey()와 getValue() 메서드를 사용하여 키와 값에 접근할 수가 있음
- setValue(V value) : 객체의 key에 대한 value를 수정할 수 있음
- key와 value가 연결되어 하나의 객체로 표현되기 때무넹 서로 연관되어 있다는 것을 명시할 수 있음
- key값을 얻어와서 수정하고 저장해줄 필요없이 setValue()를 통해 동적으로 편하게 수정할 수 있음
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
System.out.println(map.get("A"));
System.out.println(map.getOrDefault("C", 0));
System.out.println(map.getOrDefault("Z", 1000));
map.put("Z", 4);
System.out.println(map);
System.out.println(map.getOrDefault("Z", 1000));
System.out.println("===이전 방법===");
for (String key : map.keySet()) {
System.out.println("key : " + key);
System.out.println("value : " + map.get(key));
}
System.out.println("============");
System.out.println("");
System.out.println("==새로운 방법==");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("key : " + entry.getKey());
System.out.println("value : " + entry.getValue());
}
System.out.println("============");
}
}
성능이 더 좋은 방법으로 쓰도록 노력해야겠다
배울게 산더미,,,,,,,,😥😥
'코딩테스트-알고리즘 > 문법' 카테고리의 다른 글
[오늘의 자바 문법] HashMap 정렬-2 (0) | 2024.01.14 |
---|---|
[오늘의 자바 문법] HashMap 정렬 & 최대값/최소값 찾기 (0) | 2024.01.13 |
[오늘의 자바 문법] Map - getOrDefault (0) | 2024.01.12 |
오늘의 자바 문법 (0) | 2024.01.07 |
오늘의 자바 문법 (1) | 2024.01.06 |