*JAVA*

[java] 컬렉션 프레임웍 - HashMap

깐부로부터 2021. 11. 22. 00:25

Map 컬렉션의 특징 및 주요 메소드

  • 키(key)값(value)으로 구성된 Map.Entry객체를 저장하는 구조
  • 키와 값은 모두 객체
  • 키는 중복될 수 없지만 값은 중복 저장 가능

※ 키 객체는 hashCode()equals()를 재정의해서 동등 객체가 될 조건을 정해야 한다. (중복을 방지하기 위해)

그래서 보통은 키타입으로 String을 많이 사용

 

 

 

[표현법]

 

Map<K, V> map = new HashAMap<K, V>();

 

 

 

<주요 메소드>

 

객체 추가

- V put(K key, V value) : 주어진 키와 값을 추가, 저장이 되면 값을 리턴

 

객체 검색

- boolean containsKey(Object key) : 주어진 키가 있는지 여부

- boolean containsValue(Object value) : 주어진 값이 있는지 여부

- Set<Map.Entry<K,V>> entrySet() : 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴

- V get(Object key) : 주어진 키의 값을 리턴

- boolean isEmpty() : 컬렉션이 비어있는지 여부

- Set<K> keySet() : 모든 키를 Set 객체에 담아서 리턴

- int size() : 저장된 키의 총 수를 리턴

- Collection<V> values() : 저장된 모든 값 Collection에 담아서 리턴

 

객체 삭제

- void clear() : 모든 Map.Entry(키와 값)를 삭제

- V remove(Object key) : 주어진 키와 일치하는 Map.Entry 삭제, 삭제가 되면 값을 리턴

 

 

 


HashMap<K, V>의 순차적 접근 방법

HashMap<K, V> 클래스는 Iterable<T> 인터페이스를 구현하지 않으니  for-each문을 통해서, 혹은 '반복자'를 얻어서 순차적 접근을 진행할 수 없다.

 

대신 다음 메소드 호출을 통해서 Key를 따로 모아 놓은 컬렉션 인스턴스를 얻을 수 잇다. 그리고 이때 반환된 컬렉션 인스턴스를 대상으로 반복자를 얻을 수 있다.

 

 

- keySet()을 이용하여 Map의 키값과 벨류값 도출해내기

 

 

 

- entrySet()을 이용하여 키값과 벨류값 도출해내기