컬렉션 프레임워크
자바는 널리 알려져 잇는 자료 구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련된 인터페이스와 클래스들을
java.util 패키지에 포함시켜 놓았습니다. 이를 총칭해서 컬렉션 프레임워크 라고 부릅니다.
Interface | Interface / Class | 특징 | 구현 클래스 |
Collection | List | - 순서를 유지하고 저장 - 중복 저장 가능 |
ArrayList, Vector, LinkedList |
Set | - 순서를 유지 X - 중복 저장 X |
HashSet, TreeSet | |
Queue | - 선입선출(First-In-First-Out) | LinkedList | |
Map | - 키와 값으로 구성된 엔트리로 저장 - 키는 중복 저장 X |
HashMap, Hashtable, TreeMap, Properties |
|
Vector | - 후입선출(Last-In-First-Out) | Stack |
LIFO와 FIFO 컬렉션
후입선출(LIFO)은 나중에 넣은 객체가 먼저 빠져나가고, 선입선출(FIFO)은 먼저 넣은 객체가 먼저 빠져나가는 구조를 말합니다.
컬렉션 프레임워크는 LIFO 자료구조를 제공하는 'Stack 클래스'와 FIFO 자료구조를 제공하는 'Queue 인터페이스'를 제공하고 있습니다.
스택을 응용한 대표적인 예가 JVM 스택 메모리 입니다. 스택 메모리에 저장된 변수는 나중에 저장된 것부터 제거 됩니다.
큐를 응용한 대표적인 예가 스레드풀(ExecutorService)의 작업 큐 입니다.
Stack 클래스
Stack<E> stack = new Stack<E>();
Stack<E> stack = new Stack<>();
Stack 클래스 메서드
리턴 타입 | 메서드 | 설명 |
E | push(E item) | 주어진 객체를 스택에 넣습니다. |
E | pop() | 스택의 맨 위 객체를 빼냅니다. |
Queue 인터페이스
Queue 인터페이스를 구현한 대표적인 클래스는 LinkedList 입니다.
Queue<E> queue = new LinkedList<E>();
Queue<E> queue = new LinkedList<>();
Queue 인터페이스 메서드
리턴 타입 | 메서드 | 설명 |
boolean | offer(E e) | 주어진 객체를 큐에 넣습니다. |
E | poll() | 큐에서 객체를 빼냅니다. |
'Java > 기초문법' 카테고리의 다른 글
[Java] Java를 통해 숫자 야구 게임 만들기 (0) | 2024.09.23 |
---|---|
[Java] 객체지향프로그래밍 (2) | 2024.09.20 |
[Java] 컬렉션 자료구조 - Map 컬렉션 (0) | 2024.09.16 |
[Java] 컬렉션 자료구조 - Set 컬렉션 (0) | 2024.09.16 |
[Java] 컬렉션 자료구조 - List 컬렉션 (0) | 2024.09.16 |