๐ฏ ์์ดํ 47. ๋ฐํ ํ์ ์ผ๋ก๋ ์คํธ๋ฆผ๋ณด๋ค ์ปฌ๋ ์ ์ด ๋ซ๋ค.
์์ ์ํ์ค๋ฅผ ๋ฐํธ๋ํ๋ ๋ฉ์๋๋ฅผ ์์ฑํ ๋๋, ์ด๋ฅผ ์คํธ๋ฆผ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ๋ฅผ ์ํ๋ ์ฌ์ฉ์์ ๋ฐ๋ณต์ผ๋ก ์ฒ๋ฆฌํ๊ธธ ์ํ๋ ์ฌ์ฉ์๊ฐ
๋ชจ๋ ์์ ์ ์์์ ๋ ์ฌ๋ฆฌ๊ณ , ์์ชฝ์ ๋ค ๋ง์กฑ์ํค๋ ค ๋
ธ๋ ฅํ์. ์ปฌ๋ ์
์ ๋ฐํํ ์ ์๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ๋ผ. ํ์ง๋ง ๋จ์ง ์ปฌ๋ ์
์ ๋ฐํํ๋ค๋
์ด์ ๋ก ๋ฉ์น ํฐ ์ํ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์๋ ์๋๋ค.
๐ฏ ์์ดํ 48. ์คํธ๋ฆผ ๋ณ๋ ฌํ๋ ์ฃผ์ํด์ ์ ์ฉํ๋ผ.
๊ณ์ฐ๋ ์ฌ๋ฐ๋ก ์ํํ๊ณ ์ฑ๋ฅ๋ ๋นจ๋ผ์ง ๊ฑฐ๋ผ๋ ํ์ ์์ด๋ ์คํธ๋ฆผ ํ์ดํ๋ผ์ธ ๋ณ๋ ฌํ๋ ์๋์กฐ์ฐจ ํ์ง ๋ง๋ผ.
- ์ฃผ์์
- ๋ฐ์ดํฐ ์์ค๊ฐ Stream.iterate๊ฑฐ๋ ์ค๊ฐ ์ฌ์ฐ์ผ๋ก limit๋ฅผ ์ฐ๋ฉด ํ์ดํ๋ผ์ธ ๋ณ๋ ฌํ๋ก๋ ์ฑ๋ฅ ๊ฐ์ ์ ๊ธฐ๋ํ ์ ์๋ค.
- ์คํธ๋ฆผ์ ์์ค๊ฐ ArrayList, HashMap, HashSet, ConcurrentHashMap์ ์ธ์คํด์ค๊ฑฐ๋ ๋ฐฐ์ด, int ๋ฒ์, long ๋ฒ์์ผ ๋ ๋ณ๋ ฌํ์ ํจ๊ณผ๊ฐ ๊ฐ์ฅ ์ข๋ค.
- ์คํธ๋ฆผ์ ์๋ชป ๋ณ๋ ฌํํ๋ฉด ์ฑ๋ฅ์ด ๋๋น ์ง ๋ฟ๋ง ์๋๋ผ ๊ฒฐ๊ณผ ์์ฒด๊ฐ ์๋ชป๋๊ฑฐ๋ ์์ ๋ชปํ ๋์์ด ๋ฐ์ํ ์ ์๋ค.
ํ์ง๋ง, ์กฐ๊ฑด์ด ์ ๊ฐ์ถฐ์ง๋ฉด parallel ๋ฉ์๋ ํธ์ถ ํ๋๋ก ๊ฑฐ์ ํ๋ก์ธ์ ์ฝ์ด ์์ ๋น๋กํ๋ ์ฑ๋ฅ ํฅ์์ ๋ง๋ฝํ ์ ์๋ค.
์ฐธ๊ณ ์๋ฃ
Joshua Bloch, ใEffective Java 3/Eใ, ๊ฐ์๋งต์ ์ฎ๊น, ํ๋ก๊ทธ๋๋ฐ์ธ์ฌ์ดํธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=