์ด ์์ค์์๋ ๊ณ์ํด์ ์ปฌ๋ ์ ์ ์ต์ํด์ก์ต๋๋ค. HashMap ๋ฐ HashSet์ด ๋ฌด์์ธ์ง ํ์ ํ๊ณ Collections ๋์ฐ๋ฏธ ํด๋์ค์ ๋ฉ์๋์ ๋ํด ์์ธํ ๋ฐฐ์ ์ต๋๋ค. HashSet์ ๋งฅ๋ฝ์์ ๋ค๋ฅธ ์ ํ์ ๋ฃจํ์ธ for-each ๋ฃจํ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ์ ์ ํ์ต๋๋ค. ์ด ๋ฃจํ๋ HashSet ์์ ๋ชฉ๋ก์ ํ๋ฉด์ ํ์ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์์ ํ ์๋ก์ด ์ฃผ์ ๋ ๊ฐ๊ด์ switch ๋ฌธ์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์จ์ ๋ค์ด์ฌ๊ณ ๋ด์ฐ ๋ค์ ์ด๋ฌํ ์ฃผ์ ๋ฅผ ์์ ํ ๋ง๋ฌด๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค(ํ์ฌ๋ก์๋). ๋ช ๊ฐ์ง ์ถ๊ฐ ๋จ์์ ์ฃผ์ ๊น๊ฒ ์ฝ์ผ์ญ์์ค. ์ง๋ฃจํ์ง ์์ ๊ฒ์ ๋๋ค!
์ปฌ๋ ์ ํด๋์ค
ArrayList๊ฐ ๋ฑ ๋ง๋ ๋ช ๊ฐ์ง ์์ ์ด ์์ต๋๋ค. Java ์์ฑ์๋ ์ด๋ฅผ ๋ณ๋์ ํด๋์ค๋ก ๊ฐ์ ธ์ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋งค๋ฒ ์ง์ ๊ตฌํํ ํ์๊ฐ ์์ต๋๋ค. ์ด ๋ฌธ์์์๋ ์ด๋ฌํ ์์ ๊ณผ Collections ํด๋์ค์ ๋ํด ์์๋ด ๋๋ค.
for-each ๋ฃจํ
์ด๋ฏธ ์๊ณ ์๋ฏ์ด for-each ๋ฃจํ๋ ๋ฐฐ์ด ๋๋ ์ปฌ๋ ์ ์ ๋ชจ๋ ์์๋ฅผ โโ์ฒ๋ฆฌํด์ผ ํ ๋ ์ฌ์ฉํ๋ ์ผ์ข ์ for ๋ฃจํ์ ๋๋ค. ์ด ๋จ์์์๋ ์ด ๋ฃจํ๋ฅผ ๋ฐ์ดํฐ ๋ฐฐ์ด ๋ฐ ์ปฌ๋ ์ ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ์๋ฅผ ์ฐพ๊ณ ์ด ์ ํ์ ๋ฃจํ๊ฐ ์๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ฉํ ๋น๋์ค๋ฅผ ์์ฒญํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ถฉ๋ถํ์ง ์๋ค๋ฉด, for ๋ฐ for-each ๋ฃจํ์ ๋ํ ์ฐ๋ฆฌ ํ์๋ค์ ์ถ๊ฐ ์๋ฃ๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ๋ํ Java์์ ์ปฌ๋ ์ ์์ ์ ์ํ ๋์ฒด ๋ฐฉ๋ฒ์ ์ ํํ ์ ์์ต๋๋ค.
์๋ฐ์ switch ๋ฌธ
๋น์ ์ด ๊ฐ๋ฆผ๊ธธ์ ๋ฉ์ถฐ ์ ๊ธฐ์ฌ๋ผ๊ณ ์์ํด ๋ณด์ธ์. ์ผ์ชฝ์ผ๋ก ๊ฐ๋ฉด ๋ง์ ์๊ฒ ๋ฉ๋๋ค. ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ฉด ์ง์์ ์ป์ ์ ์์ต๋๋ค. ์ด ์ํฉ์ ์ฝ๋๋ก ์ด๋ป๊ฒ ํํํ ๊น์? ์ด๋ฌํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด if-then ๋ฐ if-then-else์ ๊ฐ์ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ด๋ฏธ ์๊ณ ๊ณ์ค ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ธธ์ด ๋๋ก ๊ฐ๋ผ์ง๋ ๊ฒ์ด ์๋๋ผ ์ด ๊ฐ๋๋ก ๊ฐ๋ผ์ง๋ค๋ฉด?
"์์ ํ ์ค๋ฅธ์ชฝ์ผ๋ก", "์ฝ๊ฐ ์ผ์ชฝ์ผ๋ก", "์กฐ๊ธ ๋ ์ผ์ชฝ์ผ๋ก" ๋ฑ ์ด 10๊ฐ์ ๊ฐ๋ฅํ ๋๋ก๊ฐ ์์ต๋๊น? ์ด ๋ฒ์ ์์ "if-then-else" ์ฝ๋๊ฐ ์ด๋ป๊ฒ ์ฑ์ฅํ ์ง ์์ํด ๋ณด์ญ์์ค! ๋๋ก์ 10๊ฐ๋ ๊ฐ๋ฆผ๊ธธ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ์ด๋ฌํ ์ํฉ์ ์ํด Java์๋ switch ๋ฌธ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด ์น๊ตฌ์ ๋ํด ๋ช ๋ฒ ๋ ์ด์ผ๊ธฐํ ๊ฒ์ ๋๋ค.
LinkedList
Java ํ๋ก๊ทธ๋๋จธ๋ ArrayList๋ง์ผ๋ก๋ ์ด์ง ์์ต๋๋ค. ๋ค๋ฅธ ๋ง์ ์ ์ฉํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด LinkedList๋ผ๊ณ ํ๋ ์ฐ๊ฒฐ๋ ๋ชฉ๋ก์ด ์์ต๋๋ค. ์ด๋ฏธ LinkedList์ ์ฒซ์ธ์์ ํ์ฑํ์ง๋ง ๊ทธ ๊ธฐ๋ฅ์ด ๋ฌด์์ธ์ง ์์ง ์ฒ ์ ํ ์กฐ์ฌํ์ง ์์์ต๋๊น? ๊ธฐ์ฌ๋ฅผ ์ฝ์ผ๋ฉด ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ ์ ๊ณตํ๋ ์ด์ ์ ๋ํด ํจ์ฌ ๋ ๋ง์ด ์ดํดํ๊ฒ ๋ ๊ฒ์ ๋๋ค!
HashMap: ์ด๊ฒ์ ์ด๋ค ์ข ๋ฅ์ ์ง๋์ ๋๊น?
์ด์ ์์ ์ ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ฌด์ํ์ง ๋ง์ญ์์ค. HashMap์ด ๋ฌด์์ธ์ง ์ด๋ฏธ ํ์ ํ์ จ์ต๋๊น? ๋งค์ฐ ์ข์. ํ์ง๋ง ๋ถ์๊ฐ์ ๋๋ผ๊ณ HashMap์ด ์์ ์ ๊ฐ์ ์ค ํ๋๊ฐ ์๋๋ผ๊ณ ์๊ฐํ๋ค๋ฉด ๊ธฐ์ฌ๋ฅผ ์ฝ๊ณ ๋ชฐ์ ํ์ญ์์ค. ์ฌ๊ธฐ์๋ ์๋ง์ ์ ์ฉํ ์์ ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
Enum ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
ํด๋์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ์๊ณ ์์ต๋๋ค. ํ์ง๋ง ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋ฒ์๋ฅผ ์ ํํด์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? Java 1.5๊ฐ ๋ฑ์ฅํ๊ธฐ ์ ์ ๊ฐ๋ฐ์๋ค์ ์ด ๋ฌธ์ ์ ๋ํ "๋ค๋จ๊ณ ์๋ฃจ์ "์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Enum ํด๋์ค๊ฐ ๋ฑ์ฅํ๊ณ ์ผ๋ถ ํน์ฑ๊ณผ ํจ๊ป ํด๋์ค์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ํจ๊ป ์ ๊ณต๋์์ต๋๋ค. ์ด ๊ธฐ์ฌ์์๋ ๋ค๋ฅธ ํด๋์ค์ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ๋ฐฐ์๋๋ค.
์ด๊ฑฐํ ์ค์ฉ์ ์ธ ์. ์์ฑ์ ๋ฐ ๋ฉ์๋ ์ถ๊ฐ
Enum์ ๋ํ ๋ช ๋ง๋ ๋. ๋ณด๋ค ์ ํํ๊ฒ๋ ๋จ์ด ์๋ ์ ์ง๋ง ๋ ๋ง์ ์ฝ๋์ ์ฐ์ต์ด ํ์ํฉ๋๋ค. ๊ฒฐ๊ตญ, ๋ง์ ์ฌ๋๋ค์ ๋๋๋ ์ง์๋ณด๋ค๋ ์ด ์ฃผ์ ์ ๋ํ ํผ๋์ผ๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค. ์ฃผ์ ์ ๋ํด ๋ ์ ์๊ณ ์ถ๋ค๋ฉด ๋ถ๋๋ฌ์ํ์ง ๋ง๊ณ ์์ ๋กญ๊ฒ ์ฝ๊ณ ํ์ํ์ธ์.
GO TO FULL VERSION