Algorithm

해시맵(HashMap)

HanGyuJung 2021. 1. 8. 02:10

해시맵(HashMap) : 키(Key) 와 값(Value)를 하나의 세트로 묶어서 저장하는 컬랙션 클래스를 구현하는데 사용

                           

특징 : 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남는다.

        key를 이용해 value를 알아낼 수 있다.

        삽입, 삭제, 검색 과정에서 모두 평균적으로 O(1) 의 시간복잡도를 가지기 떄문에 빠름

        순서에 상관없이 key만을 가지고 삽입,삭제,검색하기 때문에 순서/관계가 있는 배열에는 알맞지 않음

 

 

프로그래머스 Hash 완주하지 못한 선수

이 문제는 participant 배열과 completion 배열의 관계를 잘 생각해보면 바로 풀 수 있는 문제였다.

participant 배열과 completion 배열의 길이차이는 무조건 하나였기 때문에 각 배열을 정렬시켜서

일치하지 않는 인덱스의 선수를 리턴하면 되었다.

 

하지만 이 문제는 해시 유형의 문제로 명시 되어 있기 때문에 hash로 풀수 있어야 한다.

 

문제를 풀고 다른사람의 풀이에서 활용가치가 꽤 있는 메소드를 알 수 있었다.

해시맵객체.getOrDefault(key,default_value) 는 해시맵에서 key에 해당하는 value를 찾는데 그값이 null일 경우 

지정한 default_value 값을 리턴한다.

 

해쉬 key 값을 이용해서 value값을 바꾸는 방법으로는

특정 key에 매핑되는 value(데이터) 변경시 데이터 입력시 사용했던 put메소드를 사용 하면된다.

즉, put("변경할 대상 key값", "변경값") 형태로 사용해주기만 하면된다.