[CS 문답] Java에서 HashMap과 HashSet이 구현되는 원리는 무엇인가요?


[CS 문답] Java에서 HashMap과 HashSet이 구현되는 원리는 무엇인가요?

Java에서 HashMap이 구현되는 원리 key값을 Hash Function에 넣어서 정수의 해쉬값을 얻는다 이 해쉬값을 hash table의 총 용량, capacity로 모듈러 연산을 함 이 모듈러 연산의 값을 인덱스로 하여 hash table에 value값을 넣는다. 그런데 서로 다른 key값의 해쉬값의 모듈러값이 같을수도 있으므로 key와 value를 쌍으로 넣어야함!!!!! containsKey는 해쉬값으로 계산하므로 평균 O(1) containsValue는 모든 value를 다 돌아봐야하므로 O(N), N은 hash table의 저장된 데이터의 개수 Java에서 HashSet이 구현되는 원리 일단 기본적으로 HashMap을 사용합니다. 이미 HashSet내부에 map = HashMap<T, Object>();이 있음. set에 add할때 value 자리에 PRESENT라는 빈 껍데기 객체를 넣음 set의 contains는 map의 containsKey로 구현됨. 정리하면,...



원문링크 : [CS 문답] Java에서 HashMap과 HashSet이 구현되는 원리는 무엇인가요?