Hash Map이란 무엇인가요?
2020-03-13
Hash Map
-java.util.HashMap
HashMap 은 Map 인터페이스 계열의 대표적인 클래스입니다.
키(Key)와 값(Value)으로 데이터를 관리하며 키를 이용하여 데이터를 추출할 수 있습니다.
HashMap에서 알아 두어야 하는 메서드는 데이터를 집어 넣을 때와 데이터를 추출할 때 사용하는 메서드입니다.
먼저 다음과 같이 HashMap 객체를 생성합니다.
//HashMap 객체 생성
Map<String, Integer> map = new HashMap<String,Integer>();
그리고 HashMap에 데이터를 추가하기 위해서는 put() 메서드에 키와 값을 매개변수로 넣어주면 됩니다.
첫 번째 매개변수가 키이며, 두 번째 매개변수가 값에 해당합니다.
//HashMap 객체에 데이터 삽입
map.put("홍길동",new integer(1));
데이터 추출할 때에는 get() 메서드와 키를 이용해서 추출할 수 있습니다.
//키를 이용한 데이터 추출
System.out.println(map.get("홍길동"));
키를 이용해서 쉽게 검색하고자 한다면 HashMap을 이용하면 됩니다.
출처: https://firedev.tistory.com/entry/Java-HashMap과-Hashtable-의-차이점 [개발노트]
import java.util.HashMap;
import java.util.Map;
class Solution {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> players = new HashMap<>();
for(String p : participant)
{
players.put(p,players.getOrDefault(p,0)+1);
}
for(String p : completion)
{
Integer count = players.get(p);
if(count ==1)
{
players.remove(p);
}
else{
players.put(p,count - 1);
}
}
return players.keySet().iterator().next();
}
}
프로그래머스의 완주하지 못한 선수 문제입니다.
Hash Map을 이용하여 풀어낸 문제로 String 과 Integer를 키 값과 value로 받습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때,
완주하지 못한 선수의 이름을 return 하도록 합니다.