๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

[๋ฉ”์„œ๋“œ] Queue ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ(LinkedList, PriorityQueue)

by OR15A 2023. 11. 30.
Queue ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค
  • LinkedList ๋Š” ์ผ๋ฐ˜์ ์ธ ํ ์—ฐ์‚ฐ ์™ธ์— ๋ฆฌ์ŠคํŠธ ๊ธฐ๋Šฅ๊ณผ ์–‘๋ฐฉํ–ฅ ํ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ˜๋ฉด
  • PriorityQueue ๋Š” ์š”์†Œ๋“ค์ด ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ •๋ ฌ๋˜๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง

2023.11.21 - [๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] - [ํž™] ์šฐ์„ ์ˆœ์œ„ ํ : ํž™

 

LinkedList
  • LinkedList๋Š” Queue ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉฐ, ์ถ”๊ฐ€๋กœ Deque ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•จ
  • [ ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Queue ์ธํ„ฐํŽ˜์ด์Šค ์™ธ์— ์ถ”๊ฐ€๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ ]

void addFirst(E e): ๋ฆฌ์ŠคํŠธ์˜ ์•ž์ชฝ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€

void addLast(E e): ๋ฆฌ์ŠคํŠธ์˜ ๋’ค์ชฝ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€

boolean offerFirst(E e): ๋ฆฌ์ŠคํŠธ์˜ ์•ž์ชฝ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜

boolean offerLast(E e): ๋ฆฌ์ŠคํŠธ์˜ ๋’ค์ชฝ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜.

E removeFirst(): ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜

E removeLast(): ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜

E get(int index): ์ง€์ •๋œ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜

E set(int index, E element): ์ง€์ •๋œ ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ์ง€์ •๋œ ์š”์†Œ๋กœ ๋Œ€์ฒดํ•˜๊ณ , ์›๋ž˜์˜ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜

void add(int index, E element): ๋ฆฌ์ŠคํŠธ์˜ ์ง€์ •๋œ ์œ„์น˜์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€

E remove(int index): ์ง€์ •๋œ ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜

int indexOf(Object o): ์ง€์ •๋œ ๊ฐ์ฒด๊ฐ€ ๋ฆฌ์ŠคํŠธ์— ์ฒ˜์Œ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜

 

 

 

PriorityQueue
  • PriorityQueue๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ํž™์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ •๋ ฌํ•จ
  • [ Queue ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ ์™ธ์— PriorityQueue์— ์ถ”๊ฐ€๋œ ๋ฉ”์„œ๋“œ ]

boolean add(E e): ์ฃผ์–ด์ง„ ์š”์†Œ๋ฅผ ์šฐ์„ ์ˆœ์œ„ ํ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์š”์†Œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜

boolean offer(E e): ์ฃผ์–ด์ง„ ์š”์†Œ๋ฅผ ์šฐ์„ ์ˆœ์œ„ ํ์— ์ถ”๊ฐ€. add์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ IllegalStateException์„ ๋˜์ง€๋Š” ๋Œ€์‹  false๋ฅผ ๋ฐ˜ํ™˜

E remove(): ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ์ตœ์ƒ์œ„ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜. ํ๊ฐ€ ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ NoSuchElementException์„ ๋˜์ง

E poll(): ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ์ตœ์ƒ์œ„ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜. ํ๊ฐ€ ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ null์„ ๋ฐ˜ํ™˜

E element(): ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์ตœ์ƒ์œ„ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, ์ œ๊ฑฐํ•˜์ง€๋Š” ์•Š์Œ. ํ๊ฐ€ ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ NoSuchElementException์„ ๋˜์ง

E peek(): ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์ตœ์ƒ์œ„ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, ์ œ๊ฑฐํ•˜์ง€๋Š” ์•Š์Œ. ํ๊ฐ€ ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ null์„ ๋ฐ˜ํ™˜

void clear(): ์šฐ์„ ์ˆœ์œ„ ํ์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ œ๊ฑฐ

int size(): ์šฐ์„ ์ˆœ์œ„ ํ์— ์žˆ๋Š” ์š”์†Œ์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜

boolean contains(Object o): ์šฐ์„ ์ˆœ์œ„ ํ๊ฐ€ ํŠน์ • ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜

Iterator<E> iterator(): ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์š”์†Œ๋“ค์„ ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•œ ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜

boolean isEmpty(): ์šฐ์„ ์ˆœ์œ„ ํ๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜

Object[] toArray(): ์šฐ์„ ์ˆœ์œ„ ํ์— ์žˆ๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜

<T> T[] toArray(T[] a): ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์š”์†Œ๋ฅผ ์ง€์ •๋œ ๋ฐฐ์—ด์— ๋‹ด์•„ ๋ฐ˜ํ™˜. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ํ์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ, ์ƒˆ ๋ฐฐ์—ด์ด ํ• ๋‹น๋˜์–ด ๋ฐ˜ํ™˜

boolean remove(Object o): ์ง€์ •๋œ ์š”์†Œ๋ฅผ ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ์ œ๊ฑฐ. ์š”์†Œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ œ๊ฑฐ๋˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜

boolean containsAll(Collection<?> c): ์šฐ์„ ์ˆœ์œ„ ํ๊ฐ€ ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜

boolean addAll(Collection<? extends E> c): ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์šฐ์„ ์ˆœ์œ„ ํ์— ์ถ”๊ฐ€

boolean removeAll(Collection<?> c): ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์— ์žˆ๋Š” ์š”์†Œ๋“ค์„ ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ๋ชจ๋‘ ์ œ๊ฑฐ

boolean retainAll(Collection<?> c): ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์— ์žˆ๋Š” ์š”์†Œ๋“ค๋งŒ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋‚จ๊ธฐ๊ณ , ๋‚˜๋จธ์ง€ ์š”์†Œ๋“ค์€ ์ œ๊ฑฐ

Comparator<? super E> comparator(): ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์ •๋ ฌ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋น„๊ต์ž(comparator)๋ฅผ ๋ฐ˜ํ™˜. ์ž์—ฐ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ null์„ ๋ฐ˜ํ™˜