사용법 요약
- 삽입: map.put(key값, value값)
- 조회: map.get(key값)
- 키 조회: Set<> keys = map.keySet();
- 삭제: map.remove(key값)
- 전체 출력: map.toString();
개념
정의
- Map 정의: 키(key)와 값(value)을 저장하는 데이터 구조의 인터페이스
- HashMap 정의: Map 인터페이스의 구현체, 해시 테이블을 사용하여 키와 값을 저장
- 즉, 해시 함수를 통해 키와 값을 저장 -> 값 접근 성능이 좋음
HashMap 특징
- 키와 값은 모두 객체여야 한다.
- 기존에 저장된 키와 동일한 키로 값이 저장되면, 기존의 값이 새로운 값으로 대치된다.
- 저장 공간보다 값이 추가로 들어오면, 저장공간을 약 2배로 늘림
- 따라서, 초기에 값 개수가 정해져 있다면, 용량을 지정해주자!
언제 사용?
각 객체의 빈도를 측정 할때
예시) 입력받은 문자열에서 'A', 'C', 'G', 'T'의 출현 빈도를 측정하는 코드
HashMap<Character, Integer> hm = new HashMap<Character, Integer>(){{
put('A', 0);
put('C', 0);
put('G', 0);
put('T', 0);
}};
for(int i=0; i<P; i++){
hm.put(ctr[i], hm.get(ctr[i]) + 1);
}
사용법
생성(선언)
HashMap<String,String> map2 = new HashMap<>();//일반 생성
HashMap<String,String> map4 = new HashMap<>(10);//초기 용량(capacity)지정
HashMap<String,String> map6 = new HashMap<String,String>(){{//초기값 지정
put("a","b");
}};
추가/수정
HashMap은 따로 수정하는 메서드를 지원하지 않기에 수정할 값을 새로 삽입하는 방향으로 진행
map.put(1, "사과");
접근
map.get(1); //key의 값 접근
map.keySet(); //저장된 key값 확인
map; //전체 접근 : {1=사과, 2=바나나, 3=포도}
//하나씩 접근 - entrySet()활용
for (Entry<Integer, String> entry : map.entrySet()) {
Sentry.getKey(;
entry.getValue();
}
삭제
map.remove(1) //key값 제거
map.clear() //모든 값 제거
'코딩테스트 > 자료구조' 카테고리의 다른 글
4. 큐(Queue) (0) | 2024.04.12 |
---|---|
3. 스택(Stack) (0) | 2024.04.12 |
1-2. ArrayList<>사용법 (기본 타입, 객체 배열) (1) | 2024.04.12 |
1. 일반 배열(int[ ]) 사용법 (기본타입, 객체 배열) (0) | 2024.04.12 |
0. 자바에서 (x,y)를 리스트에 넣는 방법 (0) | 2024.04.02 |