๊ตญ๋น์ง์ D+66
- ์๋ฐํ๋ก๊ทธ๋๋ฐ8 -
Queue
- FIFO : First In First Out
- ์ธํฐํ์ด์ค๋ก Queue๋ฅผ ์ด์ํ๋ ์ฐ์ฐ์ ๊ฐ์ง๊ณ ์๋ค.
- List๊ตฌ์กฐ๋ ArrayDeque๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
Queue<String> queue = new LinkedList<>(); // Queue์ธํฐํ์ด์ค ๊ธฐ๋ฐ LinkedList
• ์ํ
- normal : ํ๊ฐ ์ฝ์
/์ญ์ ๊ฐ ๊ฐ๋ฅํ ์ํ
- overflow : ํ๊ฐ ์ฝ์
์ด ๋ถ๊ฐํ full ์ํ
- underflow : ํ๊ฐ ์ญ์ ๊ฐ ๋ถ๊ฐํ empty ์ํ
• ๋ฉ์๋
์์ธ๋ฐ์ : ์์ธ ๋ฐ์
- add() : ์ถ๊ฐ
- remove() : ์ญ์
- element() : ๋ค์์ ์ญ์ ๋ ๊ฐ ํ์ธ
์์ธ ๋ฏธ๋ฐ์ : ์์ธ ๋ฏธ๋ฐ์
- offer() : ์ถ๊ฐ
- poll() : ์ญ์
- peek() : ๋ค์์ ์ญ์ ๋ ๊ฐ ํ์ธ
Stack
- LIFO : Last In First Out
- Deque ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํด ์คํ์ ๊ตฌํํ๋ค.
์คํ์ ์ด์ ์ vector์ stack์ผ๋ก ๊ตฌํํ ์ ์์๋๋ฐ non-thread-safty ๋ฌธ์ ๋ก ์ธํด ์์ฆ์ ์ ์ฌ์ฉํ์ง์๊ณ , Deque์ผ๋ก ๋์ ์ฌ์ฉํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Stack์ ๋ฉ์๋๋ฅผ ์ ์ฌ์ฉํ๊ณ ๋ฆฌ๋๋น๋ฆฌํฐ๋ฅผ ๋์ด๊ธฐ ์ํด์ ๋ํํด๋์ค๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ ์ ์๋ค.
- List๊ตฌ์กฐ๋ ArrayDeque๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
Deque<String> deq= new LinkedList<>(); // Deque์ธํฐํ์ด์ค ๊ธฐ๋ฐ LinkedList
• ์ํ
- normal : ์คํ์ด ์ฝ์
/์ญ์ ๊ฐ ๊ฐ๋ฅํ ์ํ
- overflow : ์คํ์ด ์ฝ์
์ด ๋ถ๊ฐํ full ์ํ
- underflow : ์คํ์ด ์ญ์ ๊ฐ ๋ถ๊ฐํ empty ์ํ
Deque
- ํ์ ์คํ์ ๊ตฌํํ๊ธฐ ์ํ ์ข ํฉ์ ์ธ ์ธํฐํ์ด์ค ์ด๋ค.
• Deque์ ์ฐ์ฐ
์์ธ๊ฐ ์์
- addFirst() : ๋ฃ๊ธฐ
- removeFirst() : ๋นผ๊ธฐ
- getFirst() : ํ์ธํ๊ธฐ
- addLast() : ๋ค๋ก ๋ฃ๊ธฐ
- removeLast() : ๋ค์์ ๋นผ๊ธฐ
- getLast() : ๋ค์์ ํ์ธํ๊ธฐ
์์ธ๊ฐ ์์
- offerFirst() : ๋ฃ๊ธฐ
- pollFirst() : ๋นผ๊ธฐ
- peekFirst() : ํ์ธํ๊ธฐ
- offerLast() : ๋ค๋ก ๋ฃ๊ธฐ
- pollLast() : ๋ค์์ ๋นผ๊ธฐ
- peekLast() : ๋ค์์ ํ์ธํ๊ธฐ
Map<K, V> ์ธํฐํ์ด์ค
- key-value ๊ตฌ์กฐ๋ก๋ Data๋ฅผ ์ ์ฅํ๊ธฐ ์ํ JAVA Collection ์๋ฃ๊ตฌ์กฐ ์ด๋ค.
- ์ปฌ๋ ์
๋ค ์ค์์ ๋
๋ฆฝ์ ์ธ ํน์ง์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต์(iterator)๋ฅผ ์์๋ฐ์ง ์๋๋ค.
ํน์ง
- key๊ฐ ๋ ๋ฆฝ์ ์ด๋ค.
- value๊ฐ์ ๋์ผํ ๊ฐ์ด ์์ ์ ์๋ค.
- key์ value๋ 1:1 ๋์์ด๋ค.
• Map์ ์ข ๋ฅ
Map<K, V>
- K: key, ๋ฐ์ดํฐ ์๋ณ์
- V: value, ์ค์ ๋ฐ์ดํฐ
- ์ฆ Key-Value์ ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๊ธฐ ์ํ ์ธํฐํ์ด์ค
- iterable์ ์์ํ์ง ์์
HashMap<K, V>
- Hash์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฐ์ ๋ถ๋ฅ๊ธฐ๋ฅ์ ๊ฐ์ง Map ๊ตฌ์กฐ
TreeMap<K, V>
- ์ ๋ ฌ์ ๊ณต
- Tree๊ตฌ์กฐ Map
๋๊ธ