BE/Java

[Java] Map

baek-dev 2024. 12. 7. 13:44

키-값을 쌍으로 저장하고 관리하기 위한 인터페이스

`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