๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

HashSet

Set์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ง€์›ํ•˜๋Š” ๊ตฌํ˜„ ํด๋ž˜์Šค

1. ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

2. ์ž…๋ ฅํ•œ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

3. null์„ ํ—ˆ์šฉํ•œ๋‹ค.

 

์ค‘๋ณต์„ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ๊ณผ์ •

HashSet์€ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์ „์—

1. ๋จผ์ € ๊ฐ์ฒด์˜ hashCode() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ์–ป์–ด๋‚ธ๋‹ค.

2. ๊ฐ™์€ ํ•ด์‹œ ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด equals() ๋ฉ”์†Œ๋“œ๋กœ ๋น„๊ตํ•ด์„œ true๊ฐ€ ๋‚˜์˜ค๋ฉด ๋™์ผํ•œ ๊ฐ์ฒด๋กœ ํŒ๋‹จํ•˜์—ฌ

    ์ค‘๋ณต ์ €์žฅ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

๋ฌธ์ž์—ด์„ HashSet์— ์ €์žฅํ•  ๊ฒฝ์šฐ

๋ฌธ์ž์—ด์ด ๊ฐ™์€ ๋‘ String ๊ฐ์ฒด๋Š” ์„œ๋กœ ๊ฐ™์€ ๊ฐ์ฒด๋กœ ๊ฐ„์ฃผ๋˜๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š”

String ํด๋ž˜์Šค๋Š” hashCode()์™€ equals() ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด๋ฉด true๋ฅผ, ๋‹ค๋ฅด๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•˜๊ฒŒ๋” ํ–ˆ๋‹ค.

 

 

 

ํŠน์ดํ•œ๊ฒŒ HashSet ์•ˆ์— ํŠน์ •๊ฐ’์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๋‹ค.

HashSet<String> set = new HashSet<> ();

์ผ ๊ฒฝ์šฐ,

set.contains("test"); ํ•˜๋ฉด

HashSet์—์„œ "test"๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.