BE/Java

[Java] Java Collections Framework

baek-dev 2025. 3. 6. 19:37

⚡ 1. Java Collections Framework란?

Java Collections Framework(JCF)자료구조(컬렉션)를 효율적으로 다룰 수 있도록 제공하는 표준 라이브러리입니다.

List, Set, Queue, Map 등의 인터페이스와 이를 구현하는 다양한 클래스들을 포함하고 있습니다.

 

💡 Collections Framework의 핵심 기능

데이터 저장 & 관리 → 배열보다 유연한 데이터 구조 제공

정렬 & 검색 → Comparator, Comparable 지원

멀티스레드 환경 지원Concurrent 컬렉션 제공

 

⚡ 2. Java Collections Framework의 구조

Java 컬렉션 프레임워크는 다음과 같은 핵심 인터페이스로 구성됩니다.

 

🏗 Java Collections Framework 계층 구조

Collection (인터페이스)
│
├── List (순서 유지, 중복 허용)
│   ├── ArrayList
│   ├── LinkedList
│   ├── Vector
│   ├── Stack
│
├── Set (중복 허용 안함, 순서 없음)
│   ├── HashSet
│   ├── LinkedHashSet
│   ├── TreeSet
│
└── Queue (FIFO 구조)
    ├── LinkedList
    ├── PriorityQueue
    ├── ArrayDeque
Map (Key-Value 구조, 중복 Key 불가)
├── HashMap
├── LinkedHashMap
├── TreeMap
├── Hashtable

 

⚡ 3. Java 컬렉션 종류별 특징

✅ 1) List (순서 유지, 중복 허용)

클래스 특징
ArrayList 배열 기반 리스트, 검색 속도가 빠름 (O(1))
LinkedList 연결 리스트 기반, 삽입/삭제 속도가 빠름 (O(1))
Vector ArrayList와 유사하지만 동기화 지원
Stack 후입선출(LIFO) 방식의 리스트
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
System.out.println(list); // [A, B]

 

✅ 2) Set (중복 X, 순서 없음)

클래스 특징
HashSet 중복 없는 요소 저장, 순서 보장 X
LinkedHashSet 입력 순서 유지
TreeSet 정렬된 상태 유지 (O(logN))
Set<String> set = new HashSet<>();
set.add("A");
set.add("A"); // 중복 저장 안됨
System.out.println(set); // [A]

 

✅ 3) Queue (FIFO, 선입선출)

클래스 특징
LinkedList 큐(Queue)와 리스트(List) 기능 제공
PriorityQueue 우선순위 기반 큐
ArrayDeque 빠른 양방향 큐 (Deque)
Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.offer(2);
System.out.println(queue.poll()); // 1

 

✅ 4) Map (Key-Value, 중복 Key 불가)

클래스 특징
HashMap 순서 X, 빠른 검색 (O(1))
LinkedHashMap 입력 순서 유지
TreeMap Key 기준 정렬 (O(logN))
Hashtable 동기화 지원 (멀티스레드 환경)
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
System.out.println(map.get("A")); // 1

 

⚡ 4. 컬렉션 선택 기준

요구사항 추천 컬렉션
빠른 검색 ArrayList, HashMap
빠른 삽입/삭제 LinkedList, LinkedHashSet
중복 방지 Set, Map
정렬된 데이터 유지 TreeSet, TreeMap
동기화 필요 Vector, Hashtable, ConcurrentHashMap

🚀 Java Collections Framework를 활용하면 효율적인 데이터 관리가 가능!

 

 

 

 

출처 : ChatGPT

'BE > Java' 카테고리의 다른 글

[Java] 네이버 포매터(Naver Formatter)  (0) 2025.03.11
[Java] 롬복과 어노테이션 프로세서  (1) 2025.03.08
[Java] Mockito  (1) 2025.01.21
[Java] Servlet  (2) 2025.01.10
[Java] HttpServletRequest  (0) 2025.01.08