Java/Coding

Java HashMap

HoneyIT 2021. 3. 8. 23:36
반응형

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