본문 바로가기

Language/Java

[Java] Map 인터페이스

Map<K,V> 인터페이스

  • Map 인터페이스는 키(key)와 값(value)으로 구성된 객체인 Entry 객체를 저장하는 구조로 되어있다. 
  • Entry 객체는 키와 값을 각각 Key 객체와 Value 객체로 저장한다. 즉, key, value 값은 기본형일 수 없다.
  • 키는 중복으로 저장될 수 없지만, 값은 중복 저장이 가능하다. 
  • Map 인터페이스를 구현한 클래스에는 HashMap, Hashtable, TreeMap, SortedMap 등이 있다.

 

Map 인터페이스 메소드

 

HashMap

해시 함수를 통해 키와 값이 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수 없고 삽입되는 순서와 위치 또한 관계가 없다. 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는데에 있어서 뛰어난 성능을 보인다.

HashMap의 개별 요소가 되는 Entry 객체는 Map 인터페이스의 내부 인터페이스인 Entry 인터페이스를 구현하며, Map.Entry 인터페이스에는 다음과 같은 메서드가 정의되어 있다.

리턴 타입 메서드 설명
boolean equals(Object o) 동일한 Entry 객체인지 비교한다.
Object getKey() Entry 객체의 Key 객체를 반환한다.
Object  getValue() Entry 객체의 Value 객체를 반환한다.

 

HashMap 생성 및 사용 예시

//HashMap 생성
HashMap<String, Integer> hashmap = new HashMap<>();

//Entry 객체 저장
map.put("사람1", 48);
map.put("사람2", 55);

//key 요소로 갖는 Set 생성
Set<String> keySet = map.keySet();
Iterator<String> keyIterator keySet.iterator();
while(keyIterator.hasNext()){
	String key = keyIterator.next();
    Integer value = map.get(key);
}

//Entry 객체를 요소로 갖는 Set 생성
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
Interator<Map.Entry<String, Intger>> entryIterator = entrySet.iterator();
while(entryIterator.hasNext()){
	Map.Entry<String, Integer> entry = entryIterator.next();
    String key = entry.getKey();
    Integer value = entry.getValue();
}

 

HashTable

HashMap과 내부구조가 동일하지만, 병렬 프로그래밍을 할 때 동기화를 지원해준다. 

'Language > Java' 카테고리의 다른 글

[Java] Set 인터페이스  (0) 2023.05.15
[Java] List<E> 인터페이스  (0) 2023.05.15
[Java] Collection 프레임워크  (0) 2023.05.15
[Java/ERROR] ConcurrentModificationException  (0) 2022.12.09
[Java] Object 클래스 메소드 - toString()  (0) 2022.11.07