컬렉션 프레임워크 (Collection Framework) - 6.2. LinkedHashMap

CJI0524·2024년 7월 12일

Java/Collection Framework

목록 보기
20/26
post-thumbnail

1. LinkedHashMap

LinkedHashMapHashMap을 상속한 클래스로 HashMap의 모든 기능을 상속받으며 저장된 Entry에 대해 이중 연결 리스트(Doubly Linked List )의 구조를 추가하여 순서를 유지한다. 해싱(Hashing) 과정 자체는 HashMapLinkedHashMap 서로 유사하다.

2. LinkedHashMap 클래스에 정의된 메서드 목록

2.1. 생성자

메서드기능
LinkedHashMapp()LinkedHashMap 객체를 생성
LinkedHashMap(int initialCapacity)지정된 값을 초기용량으로 하는 LinkedHashMap 객체를 생성
LinkedHashMap(int initialCapacity, float loadFactor)지정된 초기용량과 load factor의 LinkedHashMap 객체를 생성
LinkedHashMap(Map m)지정된 Map의 모든 요소를 포함하는 LinkedHashMap 객체를 생성
LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)초기 용량, 부하 인수 및 접근 순서 모드를 지정할 수 있음.
accessOrder가 true이면 접근 순서가 유지

2.2. 삽입 / 탐색 / 삭제 메서드

반환타입이 boolean인 메서드들은 작업에 성공하거나 사실이면 true, 아니면 false를 반환한다.

삽입

메서드기능
Object put(Object key, Object value)LinkedHashMap에 value 객체를 key 객체에 연결하여 저장
void putAll(Map t)지정된 LinkedHashMap의 모든 key-value 쌍을 추가

변경

메서드기능
Object replace(Object key, Object value)지정된 키의 값을 지정된 객체(value)로 대체
Object replace(Object key, Object oldValue, Object newValue)지정된 키와 객체(oldValue)가 모두 일치하는 경우에만 새로운 객체(newValue)로 대체

탐색

메서드기능
boolean containKey(Object key)지정된 key 객체와 일치하는 LinkedHashMap의 key 객체가 있는지 확인
boolean containValue(Object value)지정된 value 객체와 일치하는 LinkedHashMap의 value 객체가 있는지 확인
Set entrySet()LinkedHashMap에 저장되어 있는 모든 key-value 쌍을 LinkedHashMap.Entry 타입의 객체로 저장한 Set을 반환
Set keySet()LinkedHashMap에 저장된 모든 key 객체를 반환
Collection values()LinkedHashMap에 저장된 모든 value 객체를 반환
Object get(Object key)지정된 키(key)의 값(객체)을 반환
못찾으면 null을 반환
Object getOrDefault(Object key, Object defaultValue)지정된 키(key)의 값(객체)을 반환
키를 못찾으면, 기본값 (defaultValue)로 지정된 객체를 반환

삭제

메서드기능
Object remove(Object key)지정한 key 객체와 일치하는 key-value 객체를 삭제
void clear()LinkedHashMap의 모든 객체를 삭제
boolean removeEldestEntry(Map.Entry eldest)가장 오래된 엔트리를 제거할지 여부를 결정
기본 구현은 false를 반환하여 아무 것도 제거하지 않음
이 메서드를 재정의하여 특정 조건에 따라 가장 오래된 엔트리를 제거 가능

2.3. LinkedHashMap.Entry 클래스에서 정의된 메서드

메서드기능
boolean equals(Obejct o)동일한 Entry인지 비교
Object getKey()Entry의 key 객체를 반환
Object getValue()Entry value 객체를 반환
int hashCode()Entry의 해시코드를 반환
Object setValue(Object value)Entry의 value 객체를 지정된 객체로 변경

2.4. 추가 핵심 기능

Object 메서드

메서드기능
boolean equals(Object o)동일한 LinkedHashMap인지 비교
int hashCode()해시코드를 반환
Object clone()현재 LinkedHashMap을 복제해서 반환

컬렉션 상태 체크 / 변경

메서드기능
boolean isEmpty()LinkedHashMap이 비어있는지 확인
int size()LinkedHashMap에 저장된 key-value 쌍의 개수를 반환

3. 해당 게시글 작성에 참고한 글 목록

자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서

profile
개발돌이

0개의 댓글