Java | List, Set, Map, 로드 팩터

송은석·2022년 10월 13일
0

자바의 신 - 정리

목록 보기
5/5

자바의 신(책)을 통해 배우게 된 내용과 추가로 공부한 내용을 정리합니다.
19-21강 부분


Java의 자료구조 - List, Set, Queue, Map

자바의 자료구조는 Array를 비롯하여 크게 List, Set, Queue, Map 등이 있다.


로드 팩터(Load Factor)

  • Set과 Map 에서는 로드 팩터를 기반으로 해당 객체의 저장 공간을 조절한다. 로드 팩터는 기본적으로 (데이터의 개수)/ (저장 공간) 을 의미하며, 이를 기반으로 Map과 Set의 크기를 리사이즈 한다. 로드 팩터 * Capacity < map size 가 참일 때 capacity를 2배로 resize 하게 되며, 이를 rehash라고 한다. rehash를 할 때 key.hashCode() % capacity 를 통해 각 요소에 대한 index를 다시 정해준다. 기본적으로 부여되는 Map 공간 크기는 16이다.

  • 초기에 생성자를 통해 초기 공간 크기와 로드 팩터를 정해줄 수 있다. 들어오는 데이터에 비해 로드 팩터가 작을 경우 해시 충돌 및 링크드 리스트를 통한 Separate Chaining이 많이 발생한다. 반대로, 들어오는 데이터에 비해 로드 팩터가 클 경우 메모리 낭비가 발생한다. 따라서 이를 고려하여 설정해야 한다. 일반적으로 0.75의 로드 팩터를 설정하는 것을 이상적으로 생각한다.



참고

책 | 자바의 신, 이상민 저
웹 사이트 | https://dataonair.or.kr/db-tech-reference/d-lounge/technical-data/?mod=document&uid=235167
profile
Done is better than perfect🔥

0개의 댓글