맵(Map) 해체분석
·
Java/자료구조
자바 컬렉션 프레임워크에서 `Map` 인터페이스는 `List`나 `Set`과는 다른 방식으로 데이터를 관리한다키(Key)와 값(Value)을 하나의 쌍(Entity)으로 묶어 저장하는 Key-Value 자료구조이다 `Map`의 가장 핵심적인 특징은 키(Key)의 중복을 허용하지 않는다는 것이다모든 키는 유일해야 하며, 이 키를 통해 고유한 값에 접근할 수 있다반면, 값(Value)은 중복되어도 상관없다 이번 글에서는 `Map` 인터페이스의 주요 구현체인 `HashMap`, `LinkedHashMap`, `TreeMap`의 내부 동작 방식과 특징, 실제 코드에서 어떻게 활용되는지 알아보겠다Map 인터페이스의 기본 원칙 및 공통 메서드기본 원칙고유한 키: `Map`내의 모든 키는 `equals()`와 `ha..
세트(Set) 해체분석
·
Java/자료구조
자바 컬렉션 프레임워크에서 `Set` 인터페이스는 수학의 집합 개념을 프로그래밍적으로 구현한 자료구조이다`Set`의 가장 핵심 특징은 요소의 중복을 허용하지 않으며, 대부분 순서(insertion order 또는 sorted order)가 보장되지 않는다는 점이다이러한 특성은 데이터의 유일성을 확보해야 하거나, 특정 요소의 존재 여부를 빠르게 확인해야 하는 경우에 유용하다 이번 글에서는 `Set` 인터페이스의 특징을 알아보고, 주요 구현체인 `HashSet`, `LinkedHashSet`, `TreeSet`의 내부 동작 방식과 성능 특성, 각각의 대표적인 메서드들을 비교 분석하여 어떤 상황에 어떤 클래스를 선택해야 하는지 알아보겠다Set 인터페이스의 기본 원칙 및 공통 메서드`Set`은 `Collecti..
리스트(List) 해체분석
·
Java/자료구조
자바 컬렉션 프레임워크의 핵심인 List 인터페이스는 순서가 보장되고, 중복을 허용하며, 인덱스 기반으로 데이터에 접근하는 컬렉션의 표준을 정의한다. 대부분의 자바 개발자에게 익숙하지만, 각 구현체의 내부 동작 방식과 성능 특성을 정확히 이해하고 사용하는 것이 중요하다. 이번 글에서는 List의 주요 구현체인 ArrayList, LinkedList, Vector, Stack의 내부 구조와 시간 복잡도, 쓰레드 안전성 등을 비교 분석하여 어떤 상황에 어떤 클래스를 선택해야 하는지 알아보도록 하겠다. ArrayList: 배열 기반의 고성능 리스트ArrayList는 내부적으로 Object[] 배열을 사용하여 데이터를 저장한다.이 배열 기반 구조는 ArrayList의 모든 성능 특성을 결정짓는 핵심 요소이다.시..