LIFO 후입선출
추가: push
제거: pop
top: 데이터 이쪽에 추가되고 꺼내짐
bottom: 가장 먼저 들어온 데이터가 있다
함수 콜 스택, 수식 계산, 인터럽트처리
FIFO 선입선출
추가: enqueue
제거: dequeue
rear: 데이터 이쪽에 추가
front: 데이터 이쪽에 꺼냄
인터페이스로 구현되어 있기 때문에 바로 사용하지 못하고, LinkedList가 필요하다.
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue queue = new LinkedList();
//NOT Queue queue = new Queue()
프린터 출력 대기열, BFS (Breath First Search)
양방향 입출력 (스택과 큐 합성, doubly ended queue)
추가: add (offer)
제거: remove (poll)
rear & front
:rear나 front, 한쪽의 입력 재한한 데크
:rear나 front, 한쪽의 출력 재한한 데크
Methods inherited from interface java.util.Collection
:addAll, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll,retainAll, size, toArray
size() -> 크기 알려줌 [1, 2, 3] 경우, 크기 3
contains() -> true/false
push() -> LIFO 따라 넣기; sovt(stack.push())하면 그 값 보여줌
pop() -> LIFO 따라 지우기
peek() -> pop/push안하고 가장 마지막으로 넣은 값 보여준다
empty() -> 다 비움
add() -> 값 추가
remove() -> 가지고 값 삭제
peek() -> 값 가지고 오지만 삭제는 안함. 만약 가져올 값이 없으면 null
Front 부분 입력/출력
addFirst() || offerFirst()
removeFirst() || pollFirst()
Rear 부분 입력/출력
addLast() || offerLast()
removeLast() || pollLast()
getFirst()
peekFirst()
...