๐ Java Stream API๋ ์ for-loop๋ณด๋ค ๋๋ฆด๊น?
โ๏ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ์ ์ค์ ํ๋๋ฅผ ์ ํํด์ผ๋ง ํ๋ค๋ฉด ์ด์ ํน์ ๊ทผ๊ฑฐ๊ฐ ์์ด์ผ ํ๊ธฐ ๋ง๋ จ์ ๋๋ค. ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์๊ฒ ์ง๋ง ๊ทธ ์ค ์ฐ์ ์์๊ฐ ๋์ ์ด์ ์ค์ ํ๋๊ฐ ๋ฐ๋ก ์ฑ๋ฅ์ด๊ฒ ์ฃ . ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๋ฐ ์์คํ ์์์ ๋ ์ฌ์ฉํ๊ฑฐ๋ ๋ณด๋ค ๋น ๋ฅธ ์๊ฐ ๋ด์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์ข์ ์ ํ์ด๋ผ ํ ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋, ๋ฌด์กฐ๊ฑด ์ฑ๋ฅ์ด ์ข๋ค๊ณ ํด์ ๊ฐ์ฅ ์ต๊ณ ์ ์ ํ์ด ๋์ง ๋ชปํ ์๋ ์์ต๋๋ค. ๊ทธ ์ค์ ์ค์ํ ์ด์ ๊ฐ ๋ฐ๋ก '์ ์ง๋ณด์' ์ธ๋ฐ์. ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ์ด๋ป๊ฒ๋ ๋์๊ฐ๊ฒ๋ง ํ๋ ค๋ ์ฝ๋๋ฅผ ์์ฑํ ๋๊ฐ ์์ต๋๋ค๋ง ์ฌ์ค ๊ทธ๋ฌํ ์ ํ์ ๋ฏธ๋์ ๋๊ตฐ๊ฐ์๊ฒ ์ง์ ์ฃผ๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฆฌํฉํ ๋ง์ ํ๊ณ ์ฝ๊ธฐ ์ข์ ์ฝ๋๋ฅผ ๋ง๋ค์ด์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง ๋ณด์์ ์ข์ ๊ธฐ์ ์ ์ ํํ๋ ๊ฒ์ด ๊ถ๊ทน์ ์ผ๋ก ๊ฑด๊ฐํ ๊ธฐ์ ์ ๋ง๋ค์ด ๊ฐ๋ ๊ฒ์ด ์๋๊น ํฉ๋๋ค. ์ด ๊ธ์์๋ Java์ Stream API์ for-loop ๊ฐ์ ๋น๊ต๋ฅผ ํ๊ณ ์์ต๋๋ค. ์ด์ฉ๋ฉด, ๊ฐ๋ณ๊ฒ ๊ฒ์์ ํตํด '๊ทธ๋ฐ๊ฐ ๋ณด๋ค' ํ๋ฉฐ ๋์ด๊ฐ ๋ด์ฉ์ผ๋ก ๋ณด์ผ ์๋ ์๊ฒ ์ง๋ง ์ด๋ฌํ ๊ฒฐ๊ณผ๊ฐ ์ ๋ง ๊ทธ๋ฌํ์ง ๋ค์ํ ๊ด์ ์์ ํ ์คํธ๋ฅผ ํตํด ๊ฒ์ฆํด ๋๊ฐ๋ ๊ณผ์ ์ด ์ค๋ก ํํธ์ ์ํ๋ฅผ ๋ณด๋ ๊ฒ๋ง ๊ฐ์ ์ค๋๋ง์ ํฅ๋ฏธ๋กญ๊ฒ ์ฝ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์ ๋ง์๋๋ฆฐ ๊ฒ์ฒ๋ผ ๊ธฐ์ ์ ์ ํ์๋ ์ด์ ๊ฐ ์์ด์ผ ํฉ๋๋ค. ๊ทธ ์ด์ ๊ฐ ๊ฐ๊ธ์ ์ด๋ฉด ํ ์คํธ๋ฅผ ํตํด ๋์จ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์ฆํ ์ด์ ๊ฐ ๋ ๋ ๋ ๊ฑด๊ฐํ ๊ธฐ์ ๋ก ์ฑ์ฅํ์ง ์์๊น ์๊ฐํด ๋ด ๋๋ค.