Item 36. EnumSet
๋นํธ ํ๋ ๋์ EnumSet์ ์ฌ์ฉํ๋ผ
์ด๊ฑฐํ ๊ฐ๋ค์ด ์งํฉ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ, ์์ ์๋ ๊ฐ ์์์ ์๋ก ๋ค๋ฅธ 2์ ๊ฑฐ๋ญ์ ๊ณฑ ๊ฐ์ ํ ๋นํ ์ ์ ์ด๊ฑฐ ํจํด์ ์ฌ์ฉํ์๋ค.
๋นํธ๋ณ OR์ ์ฌ์ฉํด ์ฌ๋ฌ ์์๋ฅผ ํ๋์ ์งํฉ์ผ๋ก ๋ชจ์ ์ ์์ผ๋ฉฐ, ์ด๋ฌํ ์งํฉ์ ๋นํธ ํ๋(bit field)๋ผ๊ณ ํ๋ค. ๋นํธ ํ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋นํธ๋ณ ์ฐ์ฐ์ ์ฌ์ฉํด ์งํฉ ์ฐ์ฐ์ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์์ผ๋, ์ ์ ์ด๊ฑฐ ์์์ ๋จ์ ์ ๊ทธ๋๋ก ๊ฐ๊ณ ์์ผ๋ฉฐ, ์ถ๊ฐ์ ์ธ ๋จ์ ๋ ์กด์ฌํ๋ค.
๋นํธ ํ๋ ๊ฐ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ฉด ๋จ์ํ ์ ์ ์ด๊ฑฐ ์์๋ฅผ ์ถ๋ ฅํ ๋๋ณด๋ค ํด์ํ๊ธฐ๊ฐ ํจ์ฌ ์ด๋ ค์
๋นํธ ํ๋์ ์ ์ฉ๋ ๋ชจ๋ ์์๋ฅผ ์ํํ๊ธฐ ๊น๋ค๋ก์
์ต๋ ๋ช ๋นํธ๊ฐ ํ์ํ์ง๋ฅผ API ์์ฑ ์ ๋ฏธ๋ฆฌ ์์ธกํ์ฌ ์ ์ ํ ํ์ ์ ์ ํํด์ผ ํจ
EnumSet
์ด๋ฌํ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด Java๋ EnumSet
์ด๋ผ๋ ํน์ํ Set ๊ตฌํ์ฒด๋ฅผ ์ ๊ณตํ๋ค.
๋ด๋ถ์ ์ผ๋ก๋ ๋นํธ ๋ฒกํฐ๋ก ๊ตฌํ๋์ด ์์ด, ์์๊ฐ ์ด 64๊ฐ ์ดํ๋ผ๋ฉด long
๋ณ์ ํ๋(RegularEnumSet
)๋ก ํํํ๋ฉฐ, ๊ทธ ์ด์์ด๋ผ๋ฉด long
๋ฐฐ์ด(JumboEnumSet
)์ ์ฌ์ฉํ๋ค.
EnumSet์ ์ฌ์ฉํจ์ผ๋ก์จ ์ป์ ์ ์๋ ์ฅ์ ์ ์๋์ ๊ฐ๋ค.
์ด๊ฑฐ ํ์ ์์์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์งํฉ์ ํจ๊ณผ์ ์ผ๋ก ํํ
ํ์ ์์ ํ๊ณ ๋ค๋ฅธ Set ๊ตฌํ์ฒด์๋ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ
๋นํธ๋ฅผ ์ง์ ๋ค๋ฃฐ ๋ ๊ฒช์ ์ ์๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋์ด์ค
Last updated
Was this helpful?