컬렉션 프레임워크_Map

김예인·2023년 5월 16일

백엔드 공부일지

목록 보기
20/43
post-thumbnail

Map

키(key)와 값(value)으로 구성된 객체(Entry)를 저장하는 구조의 인터페이스

  • Key 중복 저장 불가, Value 중복 저장 가능 (Key가 식별자 역할)
  • 기존 저장 Key 와 중복 시, 새로운 value 로 덮어씌움
  • Map 인터페이스를 구현한 클래스 : HashMap, Hashtable, TreeMap, SortedMap 등

📁 Map 인터페이스 공통 메서드

[객체추가]

put(Object key, Object value)
: 주어진 키로 값을 저장. 새로운 키일 경우 null을 리턴, 중복 키일 경우 값 대체 후 이전의 값 반환

[객체 검색]

containsKey(Object key) : 주어진 키가 있는지 여부 리턴 // boolean
containsValue(Object value) : 주어진 값이 있는지 여부 리턴 // boolean

get(Object key) : 주어진 키에 해당하는 값을 리턴 // Object

isEmpty() : 컬렉션이 비어 있는지 확인 // boolean
size() : 저장된 Entry 객체의 총 갯수를 리턴 // int

values() : 저장된 모든 값을 Collection에 담아서 리턴 // Collection
  entrySet() : 모든 Map.Entry 객체를 Set에 담아서 리턴 // Set
  keySet() : 모든 키를 Set 객체에 담아서 리턴 // Set

[객체 삭제]

clear() : 모든 Map.Entry(키와 값)을 삭제 // void
remove(Object key) : 주어진 키와 일치하는 Map.Entry를 삭제하고 값을 리턴 // Object

📁 Map.Entry 인터페이스 메서드

equals(Object o) : 동일한 Entry 객체인지 비교 // boolean
getKey() : Entry 객체의 Key 객체를 반환 // Object
getValue() : Entry 객체의 Value 객체를 반환 // Object
hashCode() : Entry 객체의 해시코드를 반환 // int
setValue(Object value) : Entry 객체의 Value 객체를 인자로 전달한 value 객체로 변경 // Object

| HashMap

// HashMap 생성
      HashMap<String, Integer> hashmap = new HashMap<>()
  • 요소에 접근 시, iterator()를 직접 호출 불가
  • keySet()이나 entrySet() 메서드를 이용해 Set 형태로 반환된 컬렉션에 iterator()를 호출하여 반복자를 만든 후, 반복자를 통해 순회

| Hashtable

  • HashMap과 내부 구조가 동일
  • 스레드와 관련하여 차이가 있음

💻 예시


profile
백엔드 개발자 김예인입니다.

0개의 댓글