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

[๋ฉ”์„œ๋“œ] Queue ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ

by OR15A 2023. 11. 30.
  1.  

2023.11.21 - [๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] - [ํ] ๋ฐฐ์—ด ๊ธฐ๋ฐ˜ ํ์™€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๊ธฐ๋ฐ˜ ํ

 

  1. boolean add(E e):
    • ์„ค๋ช…: ์ง€์ •๋œ ์š”์†Œ๋ฅผ ํ์˜ ๋์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ๊ฐ€ ๋” ์ด์ƒ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๋ผ๋ฉด (์˜ˆ: ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์žˆ๋Š” ํ์˜ ๊ฒฝ์šฐ), ์ด ๋ฉ”์„œ๋“œ๋Š” IllegalStateException์„ ๋˜์ง‘๋‹ˆ๋‹ค.
    • ๋ฐ˜ํ™˜๊ฐ’: ์š”์†Œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  2. boolean offer(E e):
    • ์„ค๋ช…: ์ง€์ •๋œ ์š”์†Œ๋ฅผ ํ์˜ ๋์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. add ๋ฉ”์„œ๋“œ์™€ ๋‹ฌ๋ฆฌ, ํ๊ฐ€ ์ถ”๊ฐ€๋ฅผ ์ˆ˜์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์— false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์˜ˆ์™ธ๋ฅผ ๋˜์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋ฐ˜ํ™˜๊ฐ’: ์š”์†Œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๋ฉด true, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. E remove():
    • ์„ค๋ช…: ํ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์ด ๋ฉ”์„œ๋“œ๋Š” NoSuchElementException์„ ๋˜์ง‘๋‹ˆ๋‹ค.
    • ๋ฐ˜ํ™˜๊ฐ’: ์ œ๊ฑฐ๋œ ๋งจ ์•ž์˜ ์š”์†Œ์ž…๋‹ˆ๋‹ค.
  4. E poll():
    • ์„ค๋ช…: ํ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. remove ๋ฉ”์„œ๋“œ์™€ ๋‹ฌ๋ฆฌ, ํ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ null์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์˜ˆ์™ธ๋ฅผ ๋˜์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋ฐ˜ํ™˜๊ฐ’: ์ œ๊ฑฐ๋œ ๋งจ ์•ž์˜ ์š”์†Œ์ด๋ฉฐ, ํ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด null์ž…๋‹ˆ๋‹ค.
  5. E element():
    • ์„ค๋ช…: ํ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์ด ๋ฉ”์„œ๋“œ๋Š” NoSuchElementException์„ ๋˜์ง‘๋‹ˆ๋‹ค.
    • ๋ฐ˜ํ™˜๊ฐ’: ํ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค.
  6. E peek():
    • ์„ค๋ช…: ํ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. element ๋ฉ”์„œ๋“œ์™€ ๋‹ฌ๋ฆฌ, ํ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ null์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์˜ˆ์™ธ๋ฅผ ๋˜์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋ฐ˜ํ™˜๊ฐ’: ํ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ์š”์†Œ์ด๋ฉฐ, ํ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด null์ž…๋‹ˆ๋‹ค.

 

public interface Queue<E> extends Collection<E> {
    boolean add(E e);
    boolean offer(E e);
    E remove();
    E poll();
    E element();
    E peek();
}