rosieblue
article thumbnail
[JAVA] Optional์˜ isPresent / ifPresent / ifPresentOrElse ๋ฉ”์†Œ๋“œ

Optional์„ ๋”ฐ๋กœ ๊ณต๋ถ€ํ•œ ์ ์ด ์—†์–ด์„œ ๋Œ€์ถฉ ์˜ค๋ฅ˜๋งŒ ๋ดค์„ ๋•Œ ์—ฌํƒœ๊ป isPresent์ด๋ž‘ ifPresent๊ฐ€ ๊ฐ™์€ ์• ์ธ์ค„ ์•Œ์•˜๋‹ค .. ๋ฐ”๋ถ€ ๊ทธ๋ž˜์„œ isPresent()์•ˆ์— ์ธ์ž๋กœ ์™œ ๋žŒ๋‹ค์‹์„ ์จ์ฃผ๋Š”์ง€ ์ดํ•ด๊ฐ€์•ˆ๋๋‹ค..ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ์˜€๋‹ค๋Š”๊ฒƒ ใ…‹.. ํฌ์ŠคํŠธ๊ฐ€ ๋„ˆ๋ฌด ์งง์Œ ์ฃผ์˜ ์•”ํŠผ ์˜ค๋Š˜์€ Optional์ด ๋ญ”์ง€ ์•„์ฃผ ์งง๊ฒŒ ์‚ดํŽด๋ณด๊ณ  isPresent/ifPresent/ifPresentOrElse ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. Optional์ด๋ž€? ์กด์žฌํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์•ˆ ํ•  ์ˆ˜๋„ ์žˆ๋Š” ๊ฐ์ฒด, ์ฆ‰, “null์ด ๋  ์ˆ˜๋„ ์žˆ๋Š” ๊ฐ์ฒด”์„ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ์ผ์ข…์˜ ๋ž˜ํผ ํด๋ž˜์Šค์ด๋‹ค. ์›์†Œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ตœ๋Œ€ ํ•˜๋‚˜ ๋ฐ–์— ์—†๋Š” Collection์ด๋‚˜ Stream์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ์ข‹๋‹ค. null ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๊ท€์ฐฎ์Œ์„ ํ•ธ๋“ค๋งํ•˜๊ธฐ ..

article thumbnail
[JAVA] Stream ์ด๋ž€?

SpringBoot๋กœ Java๋ฅผ ์˜ค๋žœ๋งŒ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์•„๋ž˜ ์ฝ”๋“œ๊ฐ€ ์›๋ฆฌ๊ฐ€ ๋ญ”์ง€๊ฐ€ ์ดํ•ด๊ฐ€ ์•ˆ๋ผ์„œ Java ๋ฌธ๋ฒ•์„ ๊ณต๋ถ€ํ•ด๋ณด์•˜๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Stream์˜ ๊ฐœ๋…์„ ๋‹ค๋ฃฌ ํ›„ ์•„๋ž˜ ์ฝ”๋“œ์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๋ถ„์„ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. public Optional findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } ์ผ๋‹จ ๊ฐœ๋…๋ถ€ํ„ฐ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ณด์ž. Stream์˜ ์šฉ๋„์™€ ๊ตฌ์กฐ Java8์—์„œ๋ถ€ํ„ฐ ์ง€์›ํ•œ ๊ธฐ๋Šฅ์œผ๋กœ, ์ผ์ข…์˜ ๋ฐ˜๋ณต๋ฌธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. Stream์€ ์ปฌ๋ ‰์…˜์ด๋‚˜ ๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ ๋“ฑ์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ๊ทธ ๊ฐ’๋“ค์— ๋Œ€ํ•ด์„œ ์—ฐ์‚ฐ์„ ํ•ด์ฃผ๋Š”..