ํ(Queue)
๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์ค๋ FIFO(First In First Out) ๊ตฌ์กฐ๋ก ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ์ ํ ํ์์ด๋ค.
์ฐ์ ์์ ํ(Priority Queue)
๋จผ์ ๋ค์ด์จ ๊ฒ๋ถํฐ ๋จผ์ ๋๊ฐ๋ ์ผ๋ฐ์ ์ธ ํ(์ ํ ๋๋ ์ํ)์ ๋ค๋ฅด๊ฒ ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํ๊ณ ์ฐ์ ์์๊ฐ ๋์ ์๋ฆฌ๋จผํธ๊ฐ ๋จผ์ ๋๊ฐ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
- ๋์ ์ฐ์ ์์์ ์์๊ฐ ๋จผ์ ๋์์ผ ํ๋ฏ๋ก ํ์ ๋ค์ด๊ฐ๋ ์์๋ ๋น๊ต ๊ฐ๋ฅํ ๊ธฐ์ค์ด ์์ด์ผ ํ๋ค.
- ๋ฐฐ์ด์ด๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๊ฐ ์๋ ํ(heap)์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌํํ๋ค.
- ๋ด๋ถ ๊ตฌ์กฐ๋ ์ด์งํธ๋ฆฌ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- ํ ์๋ฃ๊ตฌ์กฐ๋ ๋ถ๋ชจ ๋ ธ๋๋ ์์ ๋ ธ๋๋ณด๋ค ํญ์ ์ฐ์ ์์๊ฐ ์์ ๋ค๋ ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ฉฐ ์์ ์ด์งํธ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค.
๐ง ํ(heap) ์๋ฃ๊ตฌ์กฐ
์ฐ์ ์์ ํ๋ ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํ๋๋ค.
ํ์ ์ต์๊ฐ ๋๋ ์ต๋๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์๋ด๊ธฐ ์ํด ์์ ์ด์งํธ๋ฆฌ ํํ๋ก ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์ด์งํธ๋ฆฌ๋ ๋ชจ๋ ๋ ธ๋์ ์ต๋ ์ฐจ์๋ฅผ 2๋ก ์ ํํ ํธ๋ฆฌ๊ตฌ์กฐ(์์ ๋ ธ๋๋ฅผ ์ต๋ 2๊ฐ๋ง ๊ฐ์ง ์ ์์)์ด๊ณ , ์์ ์ด์งํธ๋ฆฌ๋ฅผ ๋ง์กฑํ๊ธฐ ์ํด์๋ ๋ง์ง๋ง ๋ ๋ฒจ์ ์ ์ธํ ๋ชจ๋ ๋ ธ๋๊ฐ ์ผ์ชฝ๋ถํฐ ์ฑ์์ ธ ์์ด์ผ ํ๋ค.
์ด์งํธ๋ฆฌ์ ๋ค๋ฅด๊ฒ ์ค๋ณต ๊ฐ์ด ํ์ฉ๋๋ค.
์ฐ์ ์์ ํ์ ๊ฐ์ ์ถ๊ฐํ๋ฉด ์ผ๋จ ๋ง์ง๋ง์ ๋ฃ๊ณ ๋ถ๋ชจ์ ๋น๊ตํด์ ์์ผ๋ฉด ๊ตํํ์ฌ ์ค๋ฅธ์ชฝ๊ณผ ๊ฐ์ ์ต์ ํ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ฒ ๋๋ค.
์ฐ์ ์์ ํ์์ ๊ฐ์ ์ ๊ฑฐํ๋ ค๋ฉด ๋ฃจํธ ๋ ธ๋์ ๋ง์ง๋ง ๋ ธ๋๋ฅผ ์ค์ํ์ฌ ์ฌ์ด์ฆ๋ฅผ ์ค์ฌ ์์ ๋ ธ๋ ๋ ๊ฐ๋ฅผ ๋น๊ตํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ ๊ฑฐํ๋ค. ์ต๋ ํ ํธ๋ฆฌ๋ ์ต์ ํ ํธ๋ฆฌ์ ๋ฐ๋๋ก ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์ ๋ ธ๋๋ณด๋ค ํฐ ๊ฐ์ ๋ง์กฑํ๋ ํธ๋ฆฌ์ด๋ค.
์ฐ์ ์์ ํ ์ฌ์ฉ ๋ฐฉ๋ฒ
์ ์ธ
// ์ฐ์ ์์๊ฐ ๋ฎ์ ์ซ์ ์
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
// ์ฐ์ ์์๊ฐ ๋์ ์ซ์ ์
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
์ฝ์
priorityQueue.add(1); // ํ๊ฐ ๊ฝ ์ฐจ๋ฉด ์์ธ ๋ฐ์
priorityQueue.offer(1); // ํ๊ฐ ๊ฝ ์ฐจ๋ฉด ์คํจ๋ฅผ ์๋ฏธํ๋ false ๋ฆฌํด
์ ๊ฑฐ
priorityQueue.peek(); // ์ฒซ ๋ฒ์งธ ๊ฐ ๋ฐํ(์ ๊ฑฐX)
priorityQueue.poll(); // ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ฐํ & ์ ๊ฑฐ
priorityQueue.remove(); // ์ฒซ ๋ฒ์งธ ๊ฐ์ ์ ๊ฑฐ
priorityQueue.clear(); // ์ด๊ธฐํ
์ฐธ๊ณ ์๋ฃ ๋ฐ ์ถ์ฒ ๐โ๏ธ
'๊ฐ๋ฐ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java NIO / ๋ ผ๋ธ๋กํน / ๋น๋๊ธฐ ๋ฐฉ์ (0) | 2022.03.14 |
---|---|
TCP ์์ผ ํต์ (0) | 2022.03.11 |
[JAVA 8] ์คํธ๋ฆผ(Stream) (0) | 2022.01.15 |
[JAVA 8] ํจ์ํ ์ธํฐํ์ด์ค(Functional Interface) (0) | 2022.01.14 |
[JAVA 8] ๋๋ค ํํ์ (0) | 2022.01.13 |
๋๊ธ