๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java

[ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ Set

by OR15A 2023. 11. 14.

HashSet

  • Set์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค.
  • ์ค‘๋ณต์š”์†Œ ์ €์žฅX, ์ค‘๋ณต์š”์†Œ ์ €์žฅ ์‹œ false๋ฐ˜ํ™˜
  • ์ €์žฅ์ˆœ์„œ ์œ ์ง€X(ํ•„์š”์‹œ LinkedHashSet์‚ฌ์šฉ)
  • ์ค‘์š” ๋ฉ”์„œ๋“œ: add, addAll, clear, clone, contain,isEmpty, iterator, remove, retainAll, size, toArray
  • equals( )์™€ hashCode( )๋ฅผ ๋ชฉ์ ์— ๋งž๊ฒŒ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์•ผํ•จ.


TreeSet

  • โ€˜์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌโ€™ ์ž๋ฃŒ๊ตฌ์กฐ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ํ•˜๋Š” ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค.
  • ์ค‘๋ณต๋ฐ์ดํ„ฐ ์ €์žฅX, ์ €์žฅ์ˆœ์„œ ์œ ์ง€X
  • ๋Œ€์‹  ์ €์žฅ ์‹œ ์ •๋ ฌ๋œ ์œ„์น˜์— ์ €์žฅํ•จ.
  • ์ฒซ ๋ฒˆ์งธ ์ €์žฅ ๊ฐ’=โ€˜๋ฃจํŠธโ€™
  • ๋ฃจํŠธ๋ผ๋Š” ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด์„œ ๊ณ„์† ํ™•์žฅํ•จ
  • ๋…ธ๋“œ: ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ Objectํƒ€์ž…์˜ ์ฐธ์กฐ๋ณ€์ˆ˜1๊ฐœ + 2๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ๋ณ€์ˆ˜2๊ฐœ
  • ์ปดํ“จํ„ฐ๊ฐ€ ์•Œ์•„์„œ ๊ฐ’์„ ๋น„๊ตํ•˜์ง€ ์•Š์Œ
    • โ‘ TreeSet์— ์ €์žฅ๋˜๋Š” ๊ฐ์ฒด๊ฐ€ Comparable๊ตฌํ˜„
    • โ‘กTreeSet์—๊ฒŒ Comparator ์ œ๊ณตํ•ด์„œ ๋‘ ๊ฐœ์˜ ๊ฐ์ฒด ๋น„๊ต๋ฐฉ๋ฒ• ์•Œ๋ ค์ฃผ๊ธฐ
  • ๋‹จ์ผ๊ฐ’ ๊ฒ€์ƒ‰, ๋ฒ”์œ„ ๊ฒ€์ƒ‰์ด ๋งค์šฐ ๋น ๋ฆ„.
  • SQL์˜ ์ธ๋ฑ์Šค๋„ ๋ฐธ๋Ÿฐ์ŠคํŠธ๋ฆฌ๋ฐฉ์‹์œผ๋กœ ์ด์ง„ํƒ์ƒ‰ํ•จ.
  • ์ถ”๊ฐ€/์‚ญ์ œ๋Š” ๋Š๋ฆผ.
  • subSet( ): ๋ฒ”์œ„๊ฒ€์ƒ‰(๋์€ ํฌํ•จํ•˜์ง€X)
  • ๋ ˆ๋“œ๋ธ”๋ž™ํŠธ๋ฆฌ: ๊ท ํ˜•์žกํžŒ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์ผ์ข…
  • first( )๋ฉ”์„œ๋“œ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ด๋„ ๋˜‘๊ฐ™์€ ์ฒซ ๋ฒˆ์งธ ๊ฐ’๋งŒ ๋‚˜์˜ด(์ฒซ๋ฒˆ์งธ ์ €์žฅ๊ฐ’=์ •๋ ฌ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•œ 1๋ฒˆ๊ฐ’)
  • ๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ์ฝ๊ณ ์‹ถ๋‹ค๋ฉด Iterator๋กœ ๊ฐ€์ ธ์™€์„œ ์ฝ๊ธฐ. (hasNext( ), next( ) ์‚ฌ์šฉํ•˜๊ธฐ)