Java에서 Map/Set/Hash가 헷갈린다…(3)
·
Java
사실 Hash는 Map이나 Set과 같은 컬렉션 유형이 아니다. 그럼에도 처음에 헷갈렸던 이유는, Map이나 Set의 구현체를 주입할 때 항상 HashMap, HashSet처럼 Hash라는 이름이 함께 등장하기 때문이었다. 그래서 Hash도 Map이나 Set처럼 하나의 컬렉션 타입이라고 착각하기 쉬웠다. 하지만 Hash는 Map이나 Set과 같은 역할을 담당하는 개념이 아니라, 데이터를 어떻게 저장하고 빠르게 찾을 것인가에 대한 구현 전략이다. 즉, Map과 Set은 “무엇을 표현하는가”에 대한 개념이고, Hash는 “그 개념을 어떻게 효율적으로 구현할 것인가”에 대한 방식이다.Map과 Set은 역할, Hash는 전략Map은 Key–Value 관계를 저장하는 컬렉션이고, Set은 중복을 허용하지 않는 값..