Java 17 기준으로 HashMap의 버킷 구조, 해시 충돌 처리, equals/hashCode 계약을 실무 관점에서 정리하고 TreeMap과 선택 기준까지 비교합니다. HashMap에 넣어둔 값을 분명히 꺼내야 하는데 get()이 null을 돌려주거나, 특정 상황에서 성능이 갑자기 나빠진 경험이 있으실 수 있어요. “키가 같은데 왜 못 찾지?”, “HashMap은 항상 O(1) 아닌가요?” 같은 질문이 딱 이 지점에서 나옵니다.이번 글에서는 HashMap이 내부에서 어떻게 동작하는지와, 실무에서 자주 밟는 함정을 함께 정리해 볼게요.핵심 개념 (Java HashMap 동작 원리, 해시 충돌, equals/hashCode 계약)HashMap을 “서랍장”에 비유하면 이해가 쉬워요. 키를 해시 함수로 계산..