๐ ์๋ฐ์ ์ ์์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.

์ถ์ฒ : https://gohighbrow.com/stacks-and-queues/
์คํ์ ๋ง์ง๋ง์ ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์  ๊บผ๋ด๋ Last in first out(LIFO)๊ตฌ์กฐ.
ํ๋ ์ฒ์ ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์  ๊บผ๋ด๋ First in first out(FIFO)๊ตฌ์กฐ๋ค.
์ฐธ๊ณ ๋ก Stack์ ํด๋์ค, Queue๋ ์ธํฐํ์ด์ค๋ค.
Stack์ ๋ฉ์๋
| method | ์ค๋ช | 
|---|---|
| boolean empty() | Stack์ด ๋น์๋์ง ํ์ธ | 
| Object peek() | Stack ๋งจ ์์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํ pop๊ณผ ๋ฌ๋ฆฌ ๊บผ๋ด๋ ๊ฒ์ ์๋ ๋น์ด ์๋ค๋ฉด EmptyStackException | 
| Oject pop() | ๋งจ ์์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ๊บผ๋ธ๋ค. ๋น์๋ค๋ฉด ์ญ์ EmptyStackExcption | 
| Object push(Object item) | Stack์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ค | 
| int search(Object o) | ์ฃผ์ด์ง ๊ฐ์ฒดo๋ฅผ ์ฐพ์์ index๋ฅผ ๋ฐํ ๋ฐฐ์ด๊ณผ ๋ฌ๋ฆฌ 0์ด ์๋ 1๋ถํฐ ์์ | 
Queue์ ๋ฉ์๋
| method | ์ค๋ช | 
|---|---|
| boolean add(Object o) | ์ง์ ํ ๊ฐ์ฒดo๋ฅผ Queue์ ์ถ๊ฐ. ์ ์ฅ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด IllegalStateException | 
| Ojbect remove() | ๊ฐ์ฒด๋ฅผ ๊บผ๋ด ๋ฐํ. ๋น์ด ์์ผ๋ฉด NoSuchElementException | 
| Object element() | ์ญ์  ์์ด ์์๋ฅผ ์ฝ๋๋ค. peek๊ณผ ๋ฌ๋ฆฌ ๋น์์ ๋ NoSuchElementException | 
| boolean offer(Object o) | ๊ฐ์ฒด ์ ์ฅ | 
| Object poll() | ๊ฐ์ฒด๋ฅผ ๊บผ๋ด ๋ฐํ, ๋น์์ผ๋ฉด null | 
| Object peek() | ์ญ์  ์์ด ์์ ์ฝ๋๋ค. ๋น์์ผ๋ฉด null. | 
Stack vs. Queue
package com.javaex.ch11;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class StackAndQueue {
    public static void main(String[] args) {
        Stack stack = new Stack();
        Queue queue = new LinkedList(); //Queue์ธํฐํ์ด์ค ๊ตฌํ์ฒด์ธ LinkedList
        stack.push("0");
        stack.push("1");
        stack.push("2");
        queue.offer("0");
        queue.offer("1");
        queue.offer("2");
        System.out.println("=========Stack=========");
        while (!stack.empty()) {
            System.out.println(stack.pop());
        }
        System.out.println("=========Queue=========");
        while (!queue.isEmpty()) {
            System.out.println(queue.poll());
        }
    }
}
/*๊ฒฐ๊ณผ
=========Stack=========
2
1
0
=========Queue=========
0
1
2
*/Queue์ ๋ณํ
Dequeue
Stack๊ณผ Queue์ ๊ฒฐํฉ. ์๋์์ ์ ์ฅoffer๊ณผ ์ญ์ poll๊ฐ๋ฅ.
๊ตฌํ ํด๋์ค:ArrayDeque, LinkedList
PriorityQueue
์ฐ์ ์์ ํ. ์ฐ์ ์์๊ฐ ๋์ ๊ฒ๋ถํฐ ๊บผ๋
null์ ์ฅ ๋ถ๊ฐ.
์
๋ ฅ 3,1,5,2,4 -> ์ถ๋ ฅ 1,2,3,4,5
Blocking Queue
๋น์ด ์์ ๋ ๊บผ๋ด๊ธฐ์ ๊ฐ๋ ์ฐจ ์์ ๋ ๋ฃ๊ธฐ๋ฅผ
์ง์ ๋ ์๊ฐ๋์ ์ง์ฐblock์ํด
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Arrays (0) | 2020.09.09 | 
|---|---|
| List (0) | 2020.09.09 | 
| Collections Framework - ํต์ฌ ์ธํฐํ์ด์ค (0) | 2020.09.09 | 
| ๋ด๋ถ ํด๋์คinner class (0) | 2020.09.09 | 
| ์ถ์ํด๋์ค & ์ธํฐํ์ด์ค (0) | 2020.09.09 |