2026/02/19 2

Java Collections 유틸 활용 팁 — 정렬부터 불변 컬렉션까지 한 번에 정리

Java 17 기준으로 Collections 정렬 유틸과 불변 컬렉션(List.of/Map.of), unmodifiable vs copyOf 차이를 실무 관점에서 정리합니다. 리스트를 정렬했는데 “원본이 바뀌어 버려서” 다른 로직이 깨진 경험이 있으신가요? 또는 List.of()로 만든 리스트에 add()를 했다가 런타임 예외를 만나 당황하신 적도 있을 거예요. 컬렉션은 자주 쓰는 만큼, “의도한 변경 가능성(mutability)”을 코드로 정확히 표현하는 게 생각보다 중요합니다.핵심 개념 (Java Collections 유틸과 불변 컬렉션이 중요한 이유)Java에서 컬렉션을 다룰 때 실무 사고의 대부분은 두 가지에서 나옵니다.정렬은 “어디를” 바꾸는가?Collections.sort(list)나 list..

JAVA 2026.02.19

Java HashMap 동작 원리와 함정 — 해시 충돌부터 equals/hashCode 계약까지

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

JAVA 2026.02.19