반응형
Hash Map
(Key-Value)
해시 맵(Hash map)은 컴퓨팅에서 키를 값에 매핑할 수 있는 구조인, 연관 배열 추가에 사용되는 자료 구조입니다.
자바에서 유용하게 사용할 수 있는 유명한 데이터 구조 중 하나입니다.
Key와 Value의 데이터 구조를 가집니다.
예제를 볼까요.
put
import java.util.HashMap
HashMap<String, Integer> stuff = new HashMap<>();
stuff.put("새우깡", 1200);
HashMap을 생성하고 put을 이용하여 Key(새우깡)과 Value(1200)을 넣어줍니다.
get
int price = stuff.get("새우깡");
'새우깡'의 가격을 출력해보면 1200이 나옵니다. 다만 '새우깡'이 아닌 '감자깡'을 출력해보면 에러가 뜹니다.
getOrDefault
int price = stuff.getOrDefault("감자깡", 1400);
이렇게 감자깡을 찾아보고 없으면 1400원으로 할 수도 있습니다.
putIfAbsent
stuff.put("새우깡", 1200);
stuff.putIfAbsent("새우깡", 2000);
stuff.putIfAbsent("감자깡", 1400);
'put if absent'를 해석해보면 없으면 넣으라는 뜻입니다. (굉장히 직관적이네요 ㅎㅎ;;)
Hashmap에 새우깡은 있으니 2000이 아닌 이미 들어있는 1200이고
감자깡은 없으니 지정해준 1400을 넣습니다.
compute
stuff.computeIfAbsent("새우깡", (key, value) -> value+200);
compute 메소드로 매핑된 값을 업데이트 할 수 있습니다.
출력 결과로 200원이 추가된 1400이 나옵니다.
computeIfAbsent
stuff.computeIfAbsent("새우깡", value -> 2000);
stuff.computeIfAbsent("감자깡", value -> 2000);
key값이 없는 감자깡만 2000원으로 입력되고 새우깡은 그대로 1200이 나옵니다.
computeIfPresent
stuff.computeIfPresent("새우깡", (key, value) -> 10);
stuff.computeIfPresent("감자깡", (key, value) -> 10);
computeIfAbsent와 반대로 key값이 있는 새우깡만 10으로 업데이트 됩니다.
put | 생성된 해쉬 맵에 값을 넣음 | ex) map.put("A", 1); |
getOrDefault | 불러올 key 값이 없거나 null이면 부여한 default 값을 가져옴 | ex) map.getOrDefault("A", 1); |
putIfAbsent | 없는 key값이면 정해준 default를 넣음 | ex) map.putIfAbsent("A", 1); |
compute | 값을 업데이트 할 수 있음 | ex) map.compute("A", (key, value) -> value+10); |
computeIfAbsent | key 값이 없을 경우에만 업데이트 함 | ex) map.computeIfAbsent("A", key -> 10); |
computeIfPresent | key 값이 있을 경우에만 업데이트 함 | ex) map.computeIfPresent("A", (key, value) -> 10); |
반응형
'Java > Coding' 카테고리의 다른 글
Weekly Challenge 4주차 (0) | 2021.09.02 |
---|---|
Weekly Challenge 2주차 (0) | 2021.09.01 |
Weekly Challenge 1주차 (0) | 2021.08.05 |
Java starsWith,endsWith (2) | 2021.03.17 |