키-값을 쌍으로 저장하고 관리하기 위한 인터페이스
`Map`은 리스트나 배열처럼 순차적으로 값을 저장하지 않는다.
1. 특징
- 키-값을 쌍으로 저장
- `("name","alice")` 에서 name이 키, alice가 값이다
- 키는 고유값(Unique)
- 동일한 키를 중복해서 저장할 수 없다
- 기존 키에 새 값을 넣으면 이전 값이 덮어씌워진다
- 값은 중복 허용
- `("key1","value")`, `("key2","value")` 는 허용됨
- Null 허용 여부
- `HashMap`은 `null`키와 `null`값을 허용
- `TreeMap`은 `null`키 허용 x
2. 주요 메서드
데이터 추가/수정
- `put(key,value)`
map.put("key","value");
데이터 조회
- `get(Object key)`
주어진 키에 연결된 값을 반환
String name = map.get("name"); // alice
키와 값 확인
- `containsKey(Object key)`
주어진 키가 존재하는지 확인
if (map.containsKey("name")) {}
- `containsValue(Object value)`
특정 값이 존재하는지 확인
if (map.containsValue("alice")) {}
데이터 제거
- `remove(Object key)`
map.remove("name");
전체 데이터 확인
- `keySet()`
- 모든 키를 `Set` 형태로 반환
Set<String< keys = map.keySet();
- `values()`
- 모든 값을 `Collection` 형태로 반환
Collection<String> values = map.values();
- `entrySet()`
- 모든 키값 쌍을 `Set<Map.Entry<K,V>>` 형태로 반환
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
크기 및 비어있음 확인
- `size()
- 키값 쌍의 개수를 반환
- `isEmpty()`
- 비어있는지 확인
3. 주요 구현체
- `HashMap`
- 키와 값의 저장순서를 보장x
- null 키와 값을 허용
- 가장 자주 사용됨
- `LinkedHashMap`
- 입력 순서를 유지함
- `TreeMap`
- 키와 자연순서(정렬된순서)를 유지함
- null 키를 허용x
- `Hashtable`
- 동기화된 Map 구현체, 멀티스레드 환경에서 안전함
- null 키와 값을 허용x
출처 : ChatGPT
'BE > Java' 카테고리의 다른 글
[Java] 람다식 (0) | 2024.12.10 |
---|---|
[Java] 스트림 (1) | 2024.12.09 |
[Java] Optional (0) | 2024.12.06 |
[Java] List (1) | 2024.12.05 |
[Java] 컬렉션 (0) | 2024.12.04 |