HashSet

HashSet<E>

Set<E> ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„ ํด๋ž˜์Šค์ด๋‹ค.

์ˆ˜์ง‘ํ•œ ์›์†Œ๋ฅผ ์ง‘ํ•ฉ์˜ ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ €์žฅ ์šฉ๋Ÿ‰(capacity)์„ ๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

์ž…๋ ฅ ์ˆœ์„œ์™€ ์ถœ๋ ฅ ์ˆœ์„œ๋Š” ๋™์ผํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. (Set์˜ ํŠน์ง•)

hashCode() & equals()

๋‘ ๋ฉ”์†Œ๋“œ๋Š” Object Class์˜ ๋ฉ”์†Œ๋“œ์ด๋ฏ€๋กœ ๋ชจ๋“  ํด๋ž˜์Šค ๋‚ด์— ํฌํ•จ๋œ๋‹ค.

hashCode() : ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋œ ๊ณ ์œ ๊ฐ’์ด๋‹ค. (๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋‹ค.)

eqauls() : ๊ฐ์ฒด์˜ ๋‚ด์šฉ(ํ•„๋“œ)๋ฅผ ๋น„๊ตํ•˜๊ณ , Object Class์˜ equals()๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

  • ํ”ํ•˜๊ฒŒ ๋ฌธ์ž์—ด ๋น„๊ต๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” equals()์˜ ๊ฒฝ์šฐ String Class์—์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•จ์œผ๋กœ์จ ๋ฌธ์ž์—ด ๊ฐ€๋А์ด ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค.

Object์˜ equals() "=="์™€ ๋™์ผํ•œ ์—ฐ์‚ฐ์ด๋‹ค. Stack ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ์ฃผ์†Œ์˜ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.

์ฐธ๊ณ  : equals() & hashCode()

HashSet์—์„œ์˜ ์ค‘๋ณตํ™•์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜

  1. hashCode()๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธ

  2. equals() ๊ฒฐ๊ณผ๊ฐ€ true์ธ์ง€ ํ™•์ธ

HashSet์—์„œ ๋‘ ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•˜๋ ค๋ฉด ์œ„ ๋‘ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

๊ฐ์ฒด๋ฅผ ๊บผ๋‚ด๋Š” ๋ฐฉ๋ฒ•

  1. toArray() ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜

  1. Iterator์— ๋‹ด๊ธฐ

  1. ํ–ฅ์ƒ๋œ for๋ฌธ

์‹œ๊ฐ„ ๋ณต์žก๋„

์‚ฝ์ž… ์‚ญ์ œ : O(1)

contains : O(1)

Last updated