Community

๐Ÿ“ƒ Java Stream API๋Š” ์™œ for-loop๋ณด๋‹ค ๋А๋ฆด๊นŒ?

โœ๏ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ธฐ์ˆ  ์ค‘์— ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ๋งŒ ํ•œ๋‹ค๋ฉด ์ด์œ  ํ˜น์€ ๊ทผ๊ฑฐ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋งˆ๋ จ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ ๊ทธ ์ค‘ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ด์œ  ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ์„ฑ๋Šฅ์ด๊ฒ ์ฃ . ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋Š”๋ฐ ์‹œ์Šคํ…œ ์ž์›์„ ๋œ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ณด๋‹ค ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์ข‹์€ ์„ ํƒ์ด๋ผ ํ•  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ๋ฌด์กฐ๊ฑด ์„ฑ๋Šฅ์ด ์ข‹๋‹ค๊ณ  ํ•ด์„œ ๊ฐ€์žฅ ์ตœ๊ณ ์˜ ์„ ํƒ์ด ๋˜์ง„ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘์— ์ค‘์š”ํ•œ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ '์œ ์ง€๋ณด์ˆ˜' ์ธ๋ฐ์š”. ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์–ด๋–ป๊ฒŒ๋“  ๋Œ์•„๊ฐ€๊ฒŒ๋งŒ ํ•˜๋ ค๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ ์‚ฌ์‹ค ๊ทธ๋Ÿฌํ•œ ์„ ํƒ์€ ๋ฏธ๋ž˜์˜ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ง์„ ์ฃผ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํŒฉํ† ๋ง์„ ํ•˜๊ณ  ์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜์— ์ข‹์€ ๊ธฐ์ˆ ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๊ถ๊ทน์ ์œผ๋กœ ๊ฑด๊ฐ•ํ•œ ๊ธฐ์ˆ ์„ ๋งŒ๋“ค์–ด ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Java์˜ Stream API์™€ for-loop ๊ฐ„์˜ ๋น„๊ต๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด, ๊ฐ€๋ณ๊ฒŒ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด '๊ทธ๋Ÿฐ๊ฐ€ ๋ณด๋‹ค' ํ•˜๋ฉฐ ๋„˜์–ด๊ฐˆ ๋‚ด์šฉ์œผ๋กœ ๋ณด์ผ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ •๋ง ๊ทธ๋Ÿฌํ•œ์ง€ ๋‹ค์–‘ํ•œ ๊ด€์ ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆํ•ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์ด ์‹ค๋กœ ํ•œํŽธ์˜ ์˜ํ™”๋ฅผ ๋ณด๋Š” ๊ฒƒ๋งŒ ๊ฐ™์•„ ์˜ค๋žœ๋งŒ์— ํฅ๋ฏธ๋กญ๊ฒŒ ์ฝ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ ๊ธฐ์ˆ ์˜ ์„ ํƒ์—๋Š” ์ด์œ ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๊ฐ€ ๊ฐ€๊ธ‰์ ์ด๋ฉด ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋‚˜์˜จ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒ€์ฆํ•œ ์ด์œ ๊ฐ€ ๋  ๋•Œ ๋” ๊ฑด๊ฐ•ํ•œ ๊ธฐ์ˆ ๋กœ ์„ฑ์žฅํ•˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ด ๋ด…๋‹ˆ๋‹ค.

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค