[JAVA] HashMap

Boknami·2023년 8월 13일
0

Java

목록 보기
2/5

프로그래머스의 '완주하지 못한 선수' 문제를 풀면서 해시맵에 대한 문법을 너무나 모른다는 생각이 들어 정리했다.
파이썬에서는 그냥 딕셔너리를 이용해서 문제를 풀어왔기에..상대적으로 해쉬맵을 생성하고 다루는데 조금 어려움을 겪었다.


🎈 생성

#해시맵

import java.util.*;

HashMap<String,Integer> map = new HashMap<>();

#리스트

List<Integer> list = new ArrayList<>()

와 비슷하게 보였지만 역시나 해시맵이기 때문에 <키, 값> 의 자료형을 정의해주어야한다.

🎊 이미 존재하는 키 값에 따라 다른 로직 처리

HashMap<String,Integer> map = new HashMap<>();
        for(int i = 0 ; i < participant.length; i++){
            //map에 키가 존재할 때
            if(map.containsKey(participant[i])){
                map.put(participant[i], map.get(participant[i]) + 1);
            }
            //map에 값이 없을 때는 생성!
            else if(!map.containsKey(participant[i])){
                map.put(participant[i], 1);
            }
        }

완주하지 못한 선수의 코드를 가져왔다.
만약에 값을 받아서 해시맵을 만드는데 이미 존재하는 여부를 따지면서 만들어야 한다면 containskey를 사용해서 키로 인한 값이 만들어져있는지 확인하고 put을 통해서 값을 넣어주면된다

  • 해시맵에 값 넣기,수정 put(key,value)
  • 해시맵에 값 존재 여부 containsKey()

🎁 해시맵 꺼내기

  • 키 가져오기
for (String key : map.keySet()) {
  System.out.println(key);
}
  • 값 가져오기
for (String key : map.values()) {
  System.out.println(key);
}

  • 응용
for (String key: map.keySet()){
            if(map.get(key) > 0)
                answer += key;
}

이런 식으로 키를 꺼내와서 키 값을 통해서 value의 값을 확인하는 것도 할 수 있다!

  • 키 .keySet()
  • 값 .values()
  • 값 .get(key)

Set, EntrySet을 사용하는 방법도 있는 듯하다.
기본적인 해시맵을 사용하면서 숙지가 완벽하면 학습하도록 해야겠다.

0개의 댓글

관련 채용 정보