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()을 이용하여 키값과 벨류값 도출해내기
'*JAVA*' 카테고리의 다른 글
[java] 제네릭스(Generics) (0) | 2021.11.22 |
---|---|
[java] 컬렉션 프레임웍 - ProperTies (0) | 2021.11.22 |
[java] 컬렉션 프레임웍 - HashSet (0) | 2021.11.21 |
[java] 컬렉션 프레임웍 - Iterator (0) | 2021.11.21 |
[java] 컬렉션 프레임웍 - LinkedList (0) | 2021.11.21 |