Queue
Queue<V> queue = new ArrayDeque<>(); Queue<V> queue = new LinkedList<>();
Queue๋ Interface์ด๊ธฐ ๋๋ฌธ์, ์์๊ฐ์ด ํด๋น ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ ๊ฐ์ง ํด๋์ค๋ก ์์ฑํ์ฌ, ์ ์ฅํ ์ ์๋ค.
์ด๋ก ์ ์ผ๋ก๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ํน์ฑ์ ๊ฐ๋ LinekdList๊ฐ ํจ์จ์ด ์ข์์ผ ํ์ง๋ง, ์ค์ ๋ก๋ ์ฌ๋ฌ ์ด์ ๋๋ฌธ์ ArrayDeque์ด ์๋๊ฐ ์กฐ๊ธ ๋ ๋น ๋ฅด๋ค๊ณ ํ๋ค.
์ด์ฐจํผ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ด์์ ํฐ ์ฐจ์ด๋ ์์ ๊ฒ ๊ฐ์ผ๋ ์๋ฌด๊ฑฐ๋ ์ฐ์.
LinkedList<String> qu = new LinkedList<String>();//ํ์ ์์ฑ
//DeQue<String> qu = new ArrayDeque<String>();
//add()๋ฉ์๋๋ฅผ ์ด์ฉํ ์ ์ฅ
qu.add("๋ท");
qu.add("๋");
qu.add("์
");
qu.add("ํ๋");
//peek() ๋ฐํ (=์ฐธ์กฐ๋ง ํ๋๊ฒ๋ฟ, ๋ฝ๋๊ฒ ์๋๋ค.)
System.out.println(qu.peek());
//poll() ๋ฝ๊ธฐ (=๋ฝ๋๊ฒ ํ์์ ๋นผ๋ธ๋ค.)
System.out.println(qu.poll());
//remove() ์์ ์ ๊ฑฐ
qu.remove("ํ๋");
๋ฉ์๋ | ์ค๋ช |
boolean add(E e) | ํด๋น ํ์ ๋งจ ๋ค์ ์ ๋ฌ๋ ์์๋ฅผ ์ฝ์
. ์ฝ์ ์ ์ฑ๊ณตํ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ํ์ ์ฌ์ ๊ณต๊ฐ์ด ์์ด ์คํจํ๋ฉด IllegalStateException์ ๋ฐ์. |
E element() | ํด๋น ํ์ ๋งจ ์์ ์๋ (์ ์ผ ๋จผ์ ์ ์ฅ๋) ์์๋ฅผ ๋ฐํํจ. |
boolean offer(E e) | ํด๋น ํ์ ๋งจ ๋ค์ ์ ๋ฌ๋ ์์๋ฅผ ์ฝ์ ํจ. |
E peek() | ํด๋น ํ์ ๋งจ ์์ ์๋ ์์๋ฅผ ๋ฐํํจ. ๋ง์ฝ ํ๊ฐ ๋น์ด์์ผ๋ฉด null์ ๋ฐํ. |
E poll() | ํด๋น ํ์ ๋งจ ์์ ์๋ ์์๋ฅผ ๋ฐํํ๊ณ ํ์์ ์ ๊ฑฐํ๋ค. |
E remove() | ํด๋น ํ์ ๋งจ ์์ ์๋ ์์๋ฅผ ์ ๊ฑฐํจ. |
Stack
Stack<V> stack = new Stack<>();
Stack์ ์์ Queue์๋ ๋ฌ๋ฆฌ ์ธํฐํ์ด์ค๊ฐ ์๋๋ผ ํด๋์ค๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ท์ฐฎ์ ๊ณ ๋ฏผํ ํ์ ์์ด Stack ํด๋์ค๋ก ์์ฑํ ์ธ์คํด์ค๋ฅผ ์ ์ฅํด์ฃผ๊ณ ์ฌ์ฉํ๋ฉด ๋๋ค.
์คํ ์์ฑ
Stack<Element> stack = new Stack<>();
์คํ์ด ์ง์ํ๋ ๋ฉ์๋
public Element push(Element item); // ๋ฐ์ดํฐ ์ถ๊ฐ
public Element pop(); // ์ต๊ทผ์ ์ถ๊ฐ๋(Top) ๋ฐ์ดํฐ ์ญ์
public Element peek(); // ์ต๊ทผ์ ์ถ๊ฐ๋(Top) ๋ฐ์ดํฐ ์กฐํ
public boolean empty(); // stack์ ๊ฐ์ด ๋น์๋์ง ํ์ธ, ๋น์์ผ๋ฉด true, ์๋๋ฉด false
public int seach(Object o); // ์ธ์๊ฐ์ผ๋ก ๋ฐ์ ๋ฐ์ดํฐ์ ์์น ๋ฐํ
<์์>
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < 5; i++) {
stack.push(i + 1);
System.out.println(stack.peek());
} // 1, 2, 3, 4, 5 ๊ฐ ํ์ฌ ๋ค์ด๊ฐ ์์
stack.pop(); // 1, 2, 3, 4
System.out.println(stack.peek()); // 4
System.out.println(stack.search(1)); // 4
System.out.println(stack.empty()); // false
์ถ์ฒ: