JAVA 자료구조 :: Map Interface

smi·2022년 7월 26일
1

JAVA (자바)

목록 보기
51/62
post-thumbnail

📝 Map Interface

  • 키(key) & 값(value)로 구성된 객체 저장
  • 키(key)로 데이터 관리
  • 키(key)는 중복 불가 & 값(value)은 중복 가능
  • 순서 없음

✓ 주요 사용 클래스들만 설명

💡 메소드

메소드설명
int size()컬렉션의 길이 반환
void clear()컬렉션의 모든 데이터를 제거
boolean isEmpty()컬렉션이 비었는 지 성공 여부 반환
boolean containsValue(Object o)해당 객체 o를 Value로 하는 객체가 컬렉션에 존재 여부 반환
boolean replace(K key, V oldValue, V newValue)해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체
boolean containsValue(Object o)해당 객체 o를 Value로 하는 객체가 컬렉션에 존재 여부 반환
Set<K> keySet()컬렉션의 모든 key를 Set 객체에 담아 반환
Set<Map.Entry<K,V>> entrySet()컬렉션의 모든 Key와 Value를 Set 객체에 담아 반환
E get(Object key)컬렉션에서 해당 key객체를 찾아 값을 반환
E put(K key, V value)주어진 K 객체를 키(key)로, E 객체를 값(value)으로 컬렉션에 추가, 성공 시 E 객체를 반환
E replace(K key, V value)해당 Map에서 전달된 키에 대응하는 값을 특정 값으로 대체
E remove(Object key, Object value)해당 Map에서 특정 값에 대응하는 특정 키의 매핑을 제거

* K와 V는 제네릭으로 K는 key 타입, V는 value 타입을 의미

* K와 V는 기본 자료형(int, double, boolean 등)은 사용할 수 없고 클래스나 인터페이스 타입만 사용 가능


💡 HashMap

  • 동기화(Thread safe) 하지 않음
  • 생성자
    • Map<K, V> 객체명 = new HashMap<K, V>();
  • 장점
    • 삽입, 삭제, 조회 연산의 O(1)을 보장하는 빠른 자료구조
  • 단점
    • 정렬 불가

💡 Hashtable

* 현재 지원 종료

  • HashMap과 동일한 내부 구조
  • 동기화 보장
  • 생성자
    • Map<K, V> 객체명 = new Hashtable<K, V>();

💡 LinkedHashMap

  • Hashtable의 하위 클래스
  • key값을 String으로 제한한 클래스
  • 생성자
    • Map<K, V> 객체명 = new LinkedHashMap<K, V>();
  • 장점
    • 삽입 순서를 보장
  • 단점
    • 정렬 불가

💡 TreeMap

  • key 값 기준, 오름차순 정렬
  • 생성자
    • Map<K, V> 객체명 = new TreeMap<K, V>();
  • 장점
    • 삽입 순서를 보장
    • 유일하게 정렬 가능
  • 단점
    • 삽입 및 삭제가 굉장히 느림
  • 메소드
메소드설명
NavigableMap<K, V> descendingMap()모든 맵을 역순으로 반환
K firstKey()해당 맵에서 현재 가장 작은(첫 번째) 키를 반환
K lastKey()해당 맵에서 현재 가장 큰(마지막) 키를 반환
K higherKey(K key)해당 맵에서 전달된 키보다 작은 키 중에서 가장 큰 키를 반환, 만약 해당하는 키가 없으면 null 반환
K lowerKey(K key)해당 맵에서 전달된 키보다 큰 키 중에서 가장 작은 키를 반환, 만약 해당하는 키가 없으면 null 반환
K ceilingKey(K key)해당 맵에서 전달된 키와 같거나, 전달된 키보다 큰 키를 반환. 없으면 null 반환
K floorKey(K key)해당 맵에서 전달된 키와 같거나, 전달된 키보다 작은 키 반환. 없으면 null 반환
SortedMap<K, V> headMap(K toKey)해당 맵에서 전달된 키보다 작은 키로 구성된 부분만을 반환
SortedMap<K, V> subMap(K fromKey, K toKey)해당 맵에서 fromKey(포함)부터 toKey(미포함)까지로 구성된 부분만을 반환
SortedMap<K, V> tailMap(K fromKey)해당 맵에서 fromKey와 같거나, fromKey보다 큰 키로 구성된 부분만을 반환
profile
공부한 거 올려요 :)

0개의 댓글