public class LinkedList<E> extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, Serializable
- ์๋ฐ์ LinkedList๋ Stack์ผ๋ก๋ Queue๋ก๋ ์ฌ์ฉ๋ ์ ์๋ค.
AbstractSequentialList
๋ฅผ ์์ํ๋ค.List
,Deque
๋ฅผ ๊ตฌํํ๋ค.- Doubly Linked List๋ก ๊ตฌํ๋์ด ์๋ค.
- ์ค๋ณต ๊ฐ๊ณผ
null
๋ชจ๋ ์ฝ์ ๊ฐ๋ฅํ๋ค.
public class Stack<E> extends Vector<E>
- ๊ณต์ ๋ฌธ์์์
Deque<Integer> stack = new ArrayDeque<Integer>();
์ฌ์ฉ์ ๊ถ์ฅํ๋ค.-
Why?
https://stackoverflow.com/questions/12524826/why-should-i-use-deque-over-stack
-
Object-oriented design - inheritance, abstraction, classess and interfaces
Stack์ ํด๋์ค๊ณ Deque๋ ์ธํฐํ์ด์ค๋ค. ํด๋์ค๋ ๋จ์ผ ์์๋ง ๊ฐ๋ฅํ์ง๋ง ์ธํฐํ์ด์ค๋ ๋ค์ค ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค. Deque๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ Stack ํด๋์ค์ ๊ทธ์ ๋ถ๋ชจํด๋์ค๋ก๋ถํฐ ์์กด๊ด๊ณ๋ฅผ ์ ๊ฑฐํ๊ณ ์ข ๋ ์ ์ฐํ๊ฒ ๊ฐ๋ฐํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, Deque ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ค๋ฅธ ํด๋์ค(LinkedList)๋ก ์ฝ๊ฒ ๊ต์ฒด๊ฐ ๊ฐ๋ฅํ๋ค.
-
Inconsistency
Stack์ ์์ฃผ ์ค๋์ ์ ๋ง๋ค์ด์ง ํด๋์ค๋ก์ Vector ํด๋์ค๋ฅผ ์์๋ฐ๊ณ ์๋ค. Vector ํด๋์ค๋ฅผ ์์ํจ์ผ๋ก ์ธํด Stack์ ๋ถํ์ํ ๊ธฐ๋ฅ(์ธ๋ฑ์ค๋ก ์์์ ์ ๊ทผํ๊ธฐ)์ด ์ถ๊ฐ๋๋ค.
-
Performance
Stack ํด๋์ค๊ฐ ์์ํ Vector ํด๋์ค๋ ArrayList์ ์ค๋ ๋ ์ธ์ดํํ ๋ฒ์ ์ด๋ค. ๋ฐ๋ผ์ ๋๊ธฐํ ๊ณผ์ ์ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๊ตฌํ๊ฑฐ๋ ์ฑ๋ฅ์ ์ค๋ฒํค๋๋ฅผ ์ผ๊ธฐํ๋ค.
-
-
public interface Queue<E> extends Collection<E>
-
Collection ์ธํฐํ์ด์ค์ ๋ฉ์๋์ ์ถ๊ฐ์ ์ผ๋ก Queue๊ฐ ์ ๊ณตํ๋ ์ฝ์ /์ญ์ /์กฐํ ๋ฉ์๋๊ฐ ์๋ค. ๋ฉ์๋๋ ๋ ๊ฐ์ง ํํ๋ก ์ ๊ณต๋๋ค. ๋ฉ์๋์์ ์ํํ๋ ์์ ์ด ์คํจํ์ ๋ ํ๋๋ ์์ธ๋ฅผ ๋์ง๋ ๋ฐฉ์์ด๊ณ ๋ค๋ฅธ ํ๋๋ ํน๋ณํ ๊ฐ(
null
์ด๋false
)์ ๋ฐํํ๋ ๋ฐฉ์์ด๋ค.cf. https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html
Throws exception Returns special value Insert add(e)
offer(e)
Remove remove()
poll()
Examine element()
peek()