ch23 : Collections - Set, Queue

๋ชฉ์ฐจ

Collections

Set

โœ๏ธ ์ง‘ํ•ฉ, ์ˆœ์„œ ์—†๊ณ  ์ค‘๋ณต ์—†๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ์–ด๋–ค ๊ฐ’์ด ์กด์žฌํ•˜๋Š” ์ง€ ์•„๋‹Œ ์ง€๋งŒ ํŒ๋‹จํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉ

  • ์ฆ‰, ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ๊ฑฐ๋ฅด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•จ

  • HashSet

    • Set ์ค‘ ๊ฐ€์žฅ ์„ฑ๋Šฅ์ด ์ข‹์Œ

    • ์กฐํšŒํ•˜๊ธฐ

      • for ๋ฃจํ”„ ์‚ฌ์šฉ

      • Iterator ๊ฐ์ฒด ํ™œ์šฉ

        Iterator<String> iterator = ํ•ด์‰ฌ์…‹.iterator();
        while(iterator.hasNext()) { // ๋‹ค์Œ์ด ์žˆ๋Š” ์ง€ ํ™•์ธ
        	iterator.next();
        }
  • TreeSet

    • ๋ ˆ๋“œ๋ธ”๋ž™ ํŠธ๋ฆฌ ํƒ€์ž…์œผ๋กœ ๊ฐ’์ด ์ €์žฅ๋˜๋ฉฐ, HashSet๋ณด๋‹ค ๋Š๋ฆผ

  • LinkedHashSet

    • ์—ฐ๊ฒฐ๋œ ๋ชฉ๋ก ํƒ€์ž…์œผ๋กœ ๊ฐ’์ด ์ €์žฅ, ๊ฐ€์žฅ ์„ฑ๋Šฅ ์•ˆ์ข‹์Œ

Queue

โœ๏ธ FIFO, ๋จผ์ € ๋“ค์–ด์˜จ ๊ฒƒ๋ถ€ํ„ฐ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋“ค์˜ ์š”์ฒญ์„ ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

  • ex) ํ‹ฐ์ผ“ํŒ…

๋ฐ˜๋Œ€๋กœ Stack์€ ํ•œ ์‚ฌ์šฉ์ž์˜ ์›น๋ธŒ๋ผ์šฐ์ € ํƒ์ƒ‰ ๊ธฐ๋ก์„ ๋’ค๋กœ๊ฐ€๊ธฐ ํ•ด์•ผํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค.

LinkedList

๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉ ์ด์œ ?

๋ฆฌ์ŠคํŠธ ์ค‘๊ฐ„ ๊ฐ’๋“ค์„ ์‚ญ์ œ/์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ,

๋ฆฌ์ŠคํŠธ/๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ shift ๋น„์šฉ์ด ๋„ˆ๋ฌด ํฌ๋‹ค. (์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜๊ณ , ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ๊ฐ€ ์žˆ๊ธฐ์—)

๋ฐ˜๋ฉด ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ, ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ์•ž/๋’ค ์š”์†Œ๋ฅผ ์„œ๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ค‘๊ฐ„์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ, ํ•ด๋‹น ์œ„์น˜์˜ ์•ž/๋’ค ์š”์†Œ๊ฐ€ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

โ‡’ ์ด๋Ÿฐ์‹์œผ๋กœ ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ/์ถ”๊ฐ€๋  ๊ฒฝ์šฐ ํšจ์œจ์ ์ด๋ฏ€๋กœ ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

โœ๏ธ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๊ฐ€ ์ด์ „/๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • List, Queue, Deque ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.

  • Deque๋„ ๊ตฌํ˜„ํ•˜๊ธฐ์—, ๋งจ ์•ž๋’ค ๋ฐ์ดํ„ฐ๋„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ดˆ๊ธฐํ™”

    • ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ/๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ฒ˜์Œ๋ถ€ํ„ฐ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์Œ

  • ์ถ”๊ฐ€

    • ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฉ”์†Œ๋“œ ์ข…๋ฅ˜๊ฐ€ ๋งŽ์•„ ํ˜ผ๋™ โ†’ add ์œ„์ฃผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ

    • addFirst(Object) : ๋งจ ์•ž์— ์ถ”๊ฐ€

    • addLast(Object) : ๋งจ ๋’ค์— ์ถ”๊ฐ€

    • add(int, Object) : ์ค‘๊ฐ„์— ์ถ”๊ฐ€

  • ์กฐํšŒ -> get ์œ„์ฃผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ

    • getFirst()

    • getLast()

    • get(int)

  • ์‚ญ์ œ -> remove ์œ„์ฃผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ

    • removeFirst()

    • removeLast()

    • remove(int)

Last updated