Stack
과 Queue
스택(stack)
은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out) 구조
로 되어 있고, 큐(queue)
는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In FIrst Out) 구조
로 되어 있음.
순차적으로 데이터를 추가하고 삭제하는 스택
에는 ArrayList
와 같은 배열기반의 컬렉션 클래스가 적합하지만, 큐
는 데이터의 추가/삭제가 쉬운 LinkedList
로 구현하는 것이 더 적합함.
Stack
과 Queue
의 메서드 // 예제 11-2
Stack st = new Stack(); // 스택은 클래스가 있어 바로 사용 가능.
Queue q = new LinkedList(); // Queue인터페이스의 구현체인 LinkedList를 사용
st.push("0");
st.push("1");
st.push("2");
q.offer("0");
q.offer("1");
q.offer("2");
System.out.println("= Stack =");
while(!st.empty()) {
System.out.println(st.pop()); // 스택에서 요소 하나를 꺼내서 출력
}
System.out.println("= Queue =");
while(!q.isEmpty()) {
System.out.println(q.poll()); // 큐에서 요소 하나를 꺼내서 출력
}
Stack
과 Queue
의 활용