LinkedHashMap 은 Linked List 의 특성을 지니는 HashMap 이다.
정확히는 HashMap 구현에 있어 Linked List 를 이용함으로써 키들 간의 순서를 보장해주고, Link 를 연결시켜 준다.
각 노드들은 before, after, next 상태를 저장하는 포인터를 지니고 있는데 각 포인터들은 다음을 가리킨다.
before : 해당 노드가 가진 키 값의 이전 키값을 참조한다. 이 노드 직전에 삽입된 노드를 가리킨다.
after : 해당 노드가 가진 키 값의 다음 키값을 참조한다. 이 노드 직후에 삽입된 노드를 가리킨다.
next : 해당 노드가 가진 키 값 내에서 다음 항목을 참조한다.
각 노드들은 상호 계층적으로 서로를 참조하며 HashMap 과 동일한 연산을 수행하는데 이 때,
put / remove 등 구조를 변경시키는 연산에 대해서 참조 링크를 바꾸어 가면서 기준값을 중심으로 정렬된 Linked List 형태를 유지한다.
좀 더 자세한 구현과 좋은 설명은 다음 링크를 참조하자.
https://medium.com/@mr.anmolsehgal/java-linkedhashmap-internal-implementation-44e2e2893036
'DataStructure & Algorithm > Datastructure' 카테고리의 다른 글
Disjoint Data Set 자료구조와 Union Find 에 대하여 (0) | 2018.08.31 |
---|---|
펜윅트리 / 바이너리인덱스트리 (Binary Indexed Tree) 에 대하여 (0) | 2018.08.14 |
힙(Heap) & 우선순위큐(Priority Queue) 의 구현과 성질 (2) | 2018.08.14 |