Collection - Stack, Queue
Stack
Stack์ LIFO(Last In First Out) ์๋ฃ๊ตฌ์กฐ์ด๋ค. (Stack ์๋ฃ๊ตฌ์กฐ ์ดํด๋ณด๊ธฐ)
์คํ์ ์์ฉํ ๋ํ์ ์ธ ์๊ฐ JVM ์คํ ๋ฉ๋ชจ๋ฆฌ์ด๋ฉฐ, ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ณ์๋ ๋์ค์ ์ ์ฅ๋ ๊ฒ ๋ถํฐ ์ ๊ฑฐ๋๋ค.
๋ฆฌํดํ์ | ๋ฉ์๋ | ์ค๋ช |
E | push(E item) | ์ฃผ์ด์ง ๊ฐ์ฒด๋ฅผ ์คํ์ ๋ฃ๋๋ค. |
E | peek() | ์คํ์ ๋งจ ์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์จ๋ค. ๊ฐ์ฒด๋ฅผ ์คํ์์ ์ ๊ฑฐํ์ง ์๋๋ค. |
E | pop() | ์คํ์ ๋งจ ์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์คํ์์ ์ ๊ฑฐํ๋ค. |
Queue
Queue๋ FIFO(First In First Out) ์๋ฃ๊ตฌ์กฐ์ด๋ค. (Queue ์๋ฃ๊ตฌ์กฐ ์ดํด๋ณด๊ธฐ)
Queue๋ฅผ ์์ฉํ ๋ํ์ ์ธ ์๋ ์ค๋ ๋ํ(ExecutorService)์ ์์ ํ์ด๋ค. ์์ ํ๋ ๋จผ์ ๋ค์ด์จ ์์ ๋ถํฐ ์ฒ๋ฆฌํ๋ค.
๋ฆฌํดํ์ | ๋ฉ์๋ | ์ค๋ช |
boolean | offer(E e) | ์ฃผ์ด์ง ๊ฐ์ฒด๋ฅผ ๋ฃ๋๋ค. |
E | peek() | ๊ฐ์ฅ ๋จผ์ ์ถ๊ฐํ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๊ณ , ๊ฐ์ฒด๋ฅผ ํ์์ ์ ๊ฑฐํ์ง ์๋๋ค. |
E | poll() | ๊ฐ์ฅ ๋จผ์ ์ถ๊ฐํ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๊ณ , ํ์์ ์ ๊ฑฐํ๋ค. |
Queue์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ ํด๋์ค๋ LinkedList์ด๋ค. LinkedList๋ List ์ธํฐํ์ด์ค๋ก ๊ตฌํํ๊ธฐ๋๋ฌธ์ List Collection์ด๊ธฐ๋ ํ๋ค.
ConcurrentLinkedQueue
๋๊ธฐํ๋ ์ปฌ๋ ์ ์ ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ํ๋์ ์ค๋ ๋๊ฐ ์์๋ฅผ ์์ ํ๊ฒ ์ฒ๋ฆฌํ๋๋ก ๋์์ฃผ์ง๋ง, ์ ์ฒด ์์๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ง๋ ๋ชปํ๋ค. ํ๋์ ์ค๋ ๋๊ฐ ์์๋ฅผ ์ฒ๋ฆฌํ ๋ ์ ์ฒด ์ ๊ธ์ด ๋ฐ์ํด ๋ค๋ฅธ ์ค๋ ๋๋ ๋๊ธฐ์ํ๊ฐ๋๋ค. ์๋ฐ๋ ๋ฉํฐ ์ค๋ ๋๊ฐ ์ปฌ๋ ์ ์ ์์๋ฅผ ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ์ปฌ๋ ์ ์ ์ ๊ณตํ๊ณ ์๋ค.
ConcurrentLinkedQueue๋ lock-free ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ์ปฌ๋ ์ ์ด๋ค. ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๊ฐ ๋์์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ, lockํ์ง ์๊ณ , ์ต์ํ ํ๋์ผ ใ ฃ์ค๋ ๋๊ฐ ์์ ํ๊ฒ ์์๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ป๋๋ก ํด์ค๋ค.
Last updated