Stack (스택)
스택은 후입선출(Last-In-First-Out, LIFO) 방식으로 데이터를 저장하고 접근합니다.
가장 최근에 추가된 요소가 가장 먼저 제거됩니다.
스택은 주로 함수 호출 스택, 뒤로가기 버튼의 동작 및 괄호 일치 검사 등에 사용됩니다.
메서드명 | Type | 설명 |
push(E item) | boolean | 스택의 맨 위에 요소를 추가합니다. |
pop() | E | 스택의 맨 위 요소를 제거하고 반환합니다. |
peek() | E | 스택의 맨 위 요소를 반환하지만 제거하지는 않습니다. |
empty() | boolean | 스택이 비어있는지 여부를 확인합니다. |
Queue (큐)
큐는 선입선출(First-In-First-Out, FIFO) 방식으로 데이터를 저장하고 접근합니다.
가장 먼저 추가된 요소가 가장 먼저 제거됩니다.
큐는 주로 작업 대기열, 자원 공유 및 탐색 알고리즘에서 사용됩니다.
메서드명 | Type | 설명 |
add(E e) 또는 offer(E e) | boolean | 큐의 끝에 요소를 추가합니다. |
remove() | E | 큐의 처음 요소를 제거하고 반환합니다. |
poll() | E | 큐의 처음 요소를 제거하고 반환하며, 큐가 비어있을 경우 null을 반환합니다. |
element() | E | 큐의 처음 요소를 반환하지만 제거하지는 않습니다. |
peek() | E | 큐의 처음 요소를 반환하지만 제거하지는 않으며, 큐가 비어있을 경우 null을 반환합니다. |
Stack은 일반적으로 LinkedList나 ArrayDeque 클래스로 구현됩니다.
Queue는 LinkedList, ArrayDeque, 또는 PriorityQueue 클래스로 구현할 수 있습니다.
Deque(디큐)
Queue 의 변형으로 각각의 끝에서 입력과 출력이 각각 이루어지는 일반 Queue 와는 달리 양쪽 끝 모두가 입력과 출력을 수행할 수 있도록 구현되어있다.
Deque 의 조상은 Queue 이며, 구현체로는 ArrayDeque 와 LinkedList 등이 있다.
Head | Tail | |||
throws exception | special value | throws exception | special value | |
insert | addFirst(e) | offerFirst(e) | addLast(e) | offerLast(e) |
remove | removeFirst() | pollFirst() | removeLast() | pollLast() |
examine | getFirst() | peekFirst() | getLast() | peekLast() |
Collection/Map (0) | 2023.10.28 |
---|---|
Iterator/Iteratable (0) | 2023.10.28 |