자료구조 16

HashMap vs TreeMap vs LinkedHashMap

HashMap vs TreeMap vs LinkedHashMap 항목 HashMap TreeMap LinkedHashMap 기반 자료구조Hash TableRed-Black TreeHash Table + Linked List정렬 여부❌ 없음✅ 자동 정렬 (Key 기준 오름차순)❌ 없음삽입 순서 유지❌ 없음❌ 없음 (정렬 순서로 유지됨)✅ 유지null 키 허용✅ 1개 허용❌ (NullPointerException 발생)✅ 1개 허용null 값 허용✅✅✅시간 복잡도 (삽입/삭제/조회)평균 O(1)O(log n)평균 O(1)Iterator 순회 순서예측 불가Key 정렬 순삽입 순Key 비교 방식equals() + hashCode()compareTo() 또는 Comparatorequals() + hashCode..

자료구조 2025.05.01

TreeMap - Java

TreeMapTreeMap은 Java의 Map 인터페이스를 구현한 클래스 중 하나로, 키를 자동으로 정렬하며 내부적으로 **Red-Black Tree(이진 탐색 트리)**를 사용합니다.범위 검색이나 정렬 기반의 탐색에 적합합니다.주요 특징자료구조레드-블랙 트리 (Red-Black Tree)정렬 여부✅ 자동 정렬 (Key 기준 오름차순)삽입 순서 유지❌ (정렬 순서대로 유지됨)null 허용❌ Key는 허용 X, Value는 허용 O시간 복잡도O(log n)특징Key 정렬, 범위 탐색, ceiling, floor 등 사용 가능대표 메서드package structure.map.treemap;import java.util.Map;import java.util.TreeMap;public class TreeMapC..

자료구조 2025.05.01

LinkedHashMap - Java

LinkedHashMapLinkedHashMap은 HashMap의 기능을 그대로 유지하면서, 입력 순서를 기억하는 Map입니다.내부적으로 해시 테이블 + 이중 연결 리스트를 사용하여, 순서를 보장합니다.주요 특징자료구조HashMap + 이중 연결 리스트정렬 여부❌삽입 순서 유지✅null 허용✅ (Key 1개, Value 다수 허용)시간 복잡도평균 O(1)특징순서 + 빠른 접근이 필요한 경우 (ex. 캐시 구현)대표 메서드package structure.map.linkedhashmap;import java.util.LinkedHashMap;public class LinkedHashMapClass { private final LinkedHashMap linkedHashMap; public Link..

자료구조 2025.05.01

HashMap - Java

HashMap HashMap은 Java의 가장 일반적인 Map 구현체로, 키-값 쌍(Key-Value Pair)을 저장하며, 내부적으로 해시 테이블(Hash Table) 기반으로 작동합니다.정렬 순서나 삽입 순서를 유지하지 않지만, 탐색 및 삽입 속도가 매우 빠릅니다.주요 특징자료구조해시 테이블 (HashTable)정렬 여부❌ 없음 (순서 보장 X)삽입 순서 유지❌null 허용✅ (Key 1개 + Value 여러 개 허용)시간 복잡도평균 O(1) (삽입, 삭제, 조회)특징가장 빠르며, 가장 자주 사용됨. 순서가 중요하지 않을 때 사용대표 메서드package structure.map.hashmap;import java.util.Collection;import java.util.HashMap;public c..

자료구조 2025.05.01

TreeSet vs HashSet vs LinkedHashSet

TreeSet vs HashSet vs LinkedHashSet항목 TreeSet HashSet LinkedHashSet기반 자료구조Red-Black Tree (이진 탐색 트리)Hash TableHash Table + Linked List정렬 여부✅ 자동 정렬 (오름차순)❌ 없음❌ 없음삽입 순서 유지❌ 유지되지 않음❌ 유지되지 않음✅ 유지됨중복 허용❌❌❌null 허용❌ (예외 발생)✅ 하나 가능✅ 하나 가능시간 복잡도 (삽입/삭제/탐색)O(log n)O(1) 평균O(1) 평균부분 집합(subSet), 범위 검색✅ 지원❌❌Iterator 순회 순서정렬 순예측 불가삽입 순서 유지사용 추천 상황정렬/범위 탐색이 필요한 경우빠른 삽입/탐색이 필요한 경우순서를 기억하면서 빠른 성능이 필요한 경우상황별 추천정렬된 ..

자료구조 2025.04.30

LinkedHashSet - Java

LinkedHashSetLinkedHashSet은 Java의 Set 구현체로, HashSet의 성능에 입력 순서 유지 기능을 추가한 순서 있는 집합입니다.내부적으로 HashMap + Doubly Linked List 구조를 사용하여 요소의 순서를 기억합니다.주요 특징자료구조HashMap + 이중 연결 리스트정렬 여부✅ 입력 순서 유지중복 허용❌ (Set의 기본 특성)null 허용✅ (단 하나만 허용)시간 복잡도add, remove, contains 평균 O(1)차이점HashSet보다 약간 느리지만 순서를 기억함대표 메서드package structure.set.linkedhashset;import java.util.LinkedHashSet;public class LinkedHashSetClass { ..

자료구조 2025.04.30

HashSet - Java

HashSetHashSet은 Java에서 제공하는 Set 인터페이스의 구현체로, 중복을 허용하지 않고, 저장된 순서를 유지하지 않으며,빠른 검색/추가/삭제 성능을 갖춘 자료구조입니다. 주요 특징자료구조내부적으로 HashMap 기반정렬 여부❌ (저장 순서 보장 X)중복 허용❌ (Set의 기본 특성)null 허용✅ (단 하나의 null 값만 허용)시간 복잡도대부분의 연산은 평균 O(1)대표 메서드package structure.set.hashset;import java.util.HashSet;public class HashSetClass { private final HashSet hashSet; public HashSetClass(HashSet hashSet) { this.hashSe..

자료구조 2025.04.30

TreeSet - Java

알고리즘에 자주 사용되는 자료구조를 정리를 한 지 며칠이 지나지 않았는데 벌써 Set 자료구조입니다. Set 자료구조 다음으로는 Map 자료구조로 마무리를 맺을 예정입니다. 이 후에는 번외로 자주 사용되는 메소드에 대해서 정리를 할 계획입니다.TreeSetTreeSet은 Java에서 제공하는 정렬된 집합(Set) 입니다.내부적으로 이진 탐색 트리(Red-Black Tree) 기반으로 구현되어 있으며, 자동으로 정렬된 상태를 유지하며 중복을 허용하지 않습니다. 주요 특징자료구조이진 탐색 트리 기반 (Red-Black Tree)정렬 순서기본은 오름차순, Comparator 지정 가능중복 허용❌ 중복된 값 저장 불가null 허용❌ (비교 불가능하므로 NullPointerException 발생)검색/삽입/삭제O..

자료구조 2025.04.30

PriorityQueue - Java

PriorityQueuePriorityQueue는 우선순위 기반으로 요소를 정렬하여 저장하는 자료구조입니다.일반적인 Queue(FIFO)와는 다르게, 항상 우선순위가 가장 높은 요소가 먼저 나오는 특징을 가집니다.Java에서는 내부적으로 힙(Heap) 자료구조를 사용하여 구현되어 있습니다.주요 특징자료구조최소 힙(Min-Heap) 기반 (기본적으로 가장 작은 값이 우선)크기 조정필요 시 배열을 2배로 확장삽입 속도O(log n) (힙 특성 유지)삭제 속도O(log n) (힙 재정렬)탐색 속도 (peek)O(1) (최상단 요소 바로 접근)중복 허용O (같은 값을 여러 번 저장 가능)null 허용❌ (null 저장 시 NullPointerException)대표 메서드package structure.prior..

자료구조 2025.04.29

ArrayDeque - Java

ArrayDequeArrayDeque는 Java에서 제공하는 배열 기반 양방향 큐(Deque) 구현체입니다.LinkedList보다 더 빠르고, Stack과 Queue를 대체할 수 있는 고성능 자료구조입니다.null 요소는 저장할 수 없습니다.주요 특징자료구조배열 기반 (원형 배열)크기 조정필요 시 배열을 2배로 확장 (자동 확장)접근 속도양 끝에서 빠른 접근 가능 (O(1))삽입/삭제 속도front, rear 모두 O(1)중복 허용O (같은 값 여러 번 저장 가능)null 허용❌ (null 값 저장 시 NullPointerException)대표 메서드package structure.arraydeque;import java.util.ArrayDeque;public class ArrayDequeClass {..

자료구조 2025.04.28