[JAVA] Map 인터페이스에 대하여 (4)
·
자바
자바에서 데이터를 다루는 컬렉션(Collection)은 세 가지 축으로 구성된다: List, Set, Map. 이 중 Map은 가장 실용적이고 많이 쓰이지만, 동시에 가장 오해가 많은 컬렉션이기도 하다. 많은 개발자들이 Map을 단순히 "키-값 저장소" 정도로 인식하고 사용하지만, 내부 구조나 구현 방식에 대한 이해 없이 사용하면, 중복 저장, 순서 오류, 정렬 실패 등 의도치 않은 결과를 마주하게 된다. 특히 Set을 학습한 사람이라면 "Set은 고유한 값만 저장하는데, Map은 키가 Set처럼 동작하고, 값이 하나 더 붙은 형태구나"라고 이해하면 비교적 쉽게 접근할 수 있다. 이번 글에서는 Map이 어떤 구조로 동작하며, 왜 Entry라는 개념이 필요한지, 그리고 대표적인 구현체인 HashMap, L..
[JAVA] Set 인터페이스에 대하여 (3)
·
자바
대부분의 자바 개발자라면 Set을 "중복을 허용하지 않는 컬렉션"이라고 알고 있다. 하지만 실무에서 이를 제대로 활용하려면 Set 내부가 어떻게 동작하는지, 왜 해시 알고리즘을 사용하는지, 그리고 hashCode()와 equals()를 왜 꼭 오버라이딩해야 하는지를 정확히 이해해야 한다. 이번 글에서는 단순히 사용하는 수준을 넘어, Set 내부 구조와 해시 기반 탐색 방식, 그리고 대표 구현체들의 차이까지 정리해본다. 1. Set이란?Set은 자바 컬렉션 프레임워크에서 중복되지 않는 객체들의 집합을 의미한다.한 번 추가한 값은 다시 추가되지 않으며, 저장 순서를 보장하지 않는 것이 일반적이다. 대표적으로 HashSet, LinkedHashSet, TreeSet이 있다.중복 허용 X순서 보장 X (Tree..