Item 58. For-each Loop
์ ํต์ ์ธ for ๋ฌธ ๋ณด๋ค๋ for-each ๋ฌธ์ ์ฌ์ฉํ๋ผ
์ ํต์ ์ธ for ๋ฌธ์ผ๋ก ์ํํ๊ฒ ๋๋ฉด ๋ถํ์ํ๊ฒ ์ธ๋ฑ์ค ๋ณ์์ ๋ฐ๋ณต์๊ฐ ์ฌ์ฉ๋์ด ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๊ณ , ์๋ชป ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฒ๊ทธ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค.
๋ฐ๋ณต ๋์์ด ๋ฐฐ์ด์ด๋ Iterable
์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ผ๋ฉด for-each ๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ๊ฒฐํ๊ณ ์์ ํ๊ฒ ์ํํ ์ ์๋ค.
๊ฒ๋ค๊ฐ ๋๋ถ๋ถ ์ํฉ์์ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ์ ๋ค.(LinkedList๋ for-each ๋ฌธ์ด ํจ์ฌ ๋น ๋ฆ)
for๋ฌธ ์ฌ์ฉ์ ๋ฒ๊ทธ
for ๋ฌธ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ฐ, ๊ทธ๋๋ง NoSuchElementException
์ด ๋ฐ์ํ์ฌ ๋ฒ๊ทธ๋ฅผ ์ฝ๊ฒ ๋ฐ๊ฒฌํ ์ ์์ง๋ง, ๊ฐ์๊ฐ ๋ ๋ง์์ ๊ฒฝ์ฐ์ ๋
ผ๋ฆฌ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์์ ๋ ์ฝ๋์ for-each ๋ฌธ์ ์ฌ์ฉํ ์ฝ๋๋ ์๋์ ๊ฐ์๋ฐ, for-each ๋ฌธ์ด ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ๋ฒ๊ทธ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์ ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
for-each ๋ฌธ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ ์ํฉ
for-each ๋ฌธ์ ์ฌ์ฉํ ์ ์๋ ์ํฉ์ด ์ธ ๊ฐ์ง ์๋ค.
ํ๊ดด์ ์ธ ํํฐ๋ง(destructive filtering): ์ปฌ๋ ์ ์ ์ํํ๋ฉด์ ์ ํ๋ ์์๋ฅผ ์ ๊ฑฐํด์ผ ํ ๋
๋ณํ(transforming): ๋ฆฌ์คํธ๋ ๋ฐฐ์ด์ ์ํํ๋ฉด์ ๊ทธ ์์์ ๊ฐ ์ผ๋ถ ํน์ ์ ์ฒด๋ฅผ ๊ต์ฒดํด์ผ ํ ๋
๋ณ๋ ฌ ๋ฐ๋ณต(parallel iteration): ์ฌ๋ฌ ์ปฌ๋ ์ ์ ๋ณ๋ ฌ๋ก ์ํํด์ผ ํ ๋๋ ๊ฐ๊ฐ์ ๋ฐ๋ณต์์ ์ธ๋ฑ์ค ๋ณ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฏ๋ก for-each ๋ฌธ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
Last updated
Was this helpful?