Collection.stream().forEach() vs Collection.forEach()

์˜ˆ์ „์— ๋ฏธ์…˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์ธ์ง€ํ•ด ์ •๋ฆฌํ–ˆ๋˜ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ… Collection.stream().forEach() vs Collection.forEach() ์ˆœ์„œ Collection.forEach๋Š” ์ปฌ๋ ‰์…˜์˜ iterator๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆœ์„œ๊ฐ€ ๋ช…ํ™•ํ•˜๋‹ค. ๋ฐ˜๋ฉด Stream.forEach๋Š” ์ˆœ์„œ๊ฐ€ ๋ช…ํ™•ํ•˜์ง€ ์•Š๋‹ค. ์ˆœ์ฐจ์ŠคํŠธ๋ฆผ์ด๋ผ๋ฉด ๋ณดํ†ต ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ๋ณ‘๋ ฌ์ŠคํŠธ๋ฆผ์ด๋ผ๋ฉด ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. Collection ์ˆ˜์ •๊ณผ Side Effect Collection.forEach๋Š” iter๋™์•ˆ ๊ตฌ์กฐ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์„  ์•ˆ๋œ๋‹ค. ์ˆœํšŒํ•˜๋Š” ๋™์•ˆ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€/์‚ญ์ œ๋˜๋ฉด ConcurrentModification Execption์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋™์‹œ์— ์ปฌ๋ ‰์…˜์€ fail-fastํ•˜๊ฒŒ ์„ค๊ณ„๋˜์—ˆ๋‹ค. ์ฆ‰ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ”๋กœ ์˜ˆ์™ธ๊ฐ€..

General, Java 2019. 11. 20. 21:51
FilenameUtils๋ฅผ ์ด์šฉํ•œ ํŒŒ์ผ ํ™•์žฅ์ž ๊ฒ€์‚ฌ (Apache Commons IO 2.5 API)

์›น์œผ๋กœ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ํ˜•์‹์˜ ํŒŒ์ผ๋งŒ ๋ฐ›๊ณ  ์‹ถ์„ ๋•Œ, ๋‹น์—ฐํžˆ ์„œ๋ฒ„์—์„  ํ•„ํ„ฐ๋ง์„ ํ•ด์•ผ ํ•œ๋‹ค. ์‚ฌ์‹ค ํ”„๋ก ํŠธ์—์„œ๋„ (์•„๋ฌด๋ฆฌ ์–‘์‹ฌ์ด ์—†์–ด๋„) ์ตœ์†Œํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Accept ํ˜•์‹ ์ œํ•œ์€ ๊ฑธ์–ด๋†“์„๊ฒƒ์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด accept๋ฅผ ์„ค์ •ํ•˜๋ฉด ์ฒจ๋ถ€ํŒŒ์ผ ์„ ํƒํ™”๋ฉด์—์„œ ์‚ฌ์ง„๊ณผ ์˜์ƒ ํŒŒ์ผ๋งŒ ๋ณด์ธ๋‹ค. ์‚ฌ์‹ค ์ด๊ฑด ์šฐ์ธกํ•˜๋‹จ์„ "๋ชจ๋“  ํŒŒ์ผ"๋กœ ์„ ํƒํ•˜๋ฉด ๋‹ค๋ฅธ ํ˜•์‹์˜ ํŒŒ์ผ๋„ ๋ณด์—ฌ ์„ ํƒ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์„ ํƒ๋œ ๋‹ค๋ฅธ ํ˜•์‹์˜ ํŒŒ์ผ์„ ์„œ๋ฒ„๋กœ submitํ•˜๊ธฐ ์ „์— ํ•œ๋ฒˆ๋” ์›ํ•˜๋Š” ํ˜•์‹์˜ ํŒŒ์ผ์ธ์ง€ ํ™•์ธํ•˜๋Š” JS ๋ฐฉ๋ฒ•์ด ๋ถ„๋ช…ํžˆ ์žˆ์„ ๊ฒƒ์ด๊ณ , ๋˜๋Š” ์• ์ดˆ์— input ํƒœ๊ทธ๋Œ€์‹  ์ข€๋” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์žˆ์ง€์•Š์„๊นŒ์‹ถ๋‹ค. ํ”„๋ก ํŠธ์—์„œ 1์ฐจ์ ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋ฌผ๋ก  ์ข‹๊ณ  ๋‹ค๋“ค ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ์žˆ๊ฒ ์ง€๋งŒ, ์ด๋ฒˆ์—” ์„œ๋ฒ„์—์„œ FilenameUtils (Apach..

General, Java 2019. 9. 14. 15:41
Java) toString()์„ overrideํ•˜๋Š” 10๊ฐ€์ง€ ํŒ (๋ฒˆ์—ญ/์š”์•ฝ)

์•„๋ž˜์˜ ์ž๋ฃŒ๋ฅผ ๋ฒˆ์—ญ ๋ฐ ์š”์•ฝ 10 Tips to override toString() method in Java ์ž๋ฐ”์˜ toString ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด์˜ ๋ช…ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ์ •๋ณด๋ฅผ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ์ œ๊ณตํ•˜๋Š”๋ฐ ์ด์šฉ๋œ๋‹ค. ์˜ฌ๋ฐ”๋ฅด๊ฒŒ override๋œ toString ๋ฉ”์„œ๋“œ๋Š” ๊ฐ€์น˜์žˆ๊ณ  ์˜๋ฏธ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ํ”„๋กœ๊ทธ๋žจ์˜ ๋กœ๊น…๊ณผ ๋””๋ฒ„๊น…์— ๋„์›€์„ ์ค€๋‹ค. toString์€ java.lang.Object ํด๋ž˜์Šค์— ์ •์˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋ธŒํด๋ž˜์Šค์—์„œ overrideํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ toString์€ package.class@hashCode์˜ ํ˜•ํƒœ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ex) test.Country@18e2b22 ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ toString์„ ..

General, Java 2019. 9. 14. 15:24
์ธ์ž๋กœ ํ•จ์ˆ˜๋ฅผ ๋ณด๋‚ด์ž(์ต๋ช…ํด๋ž˜์Šค, ๋žŒ๋‹ค ๋“ฑ) & Map์„ ์‚ฌ์šฉํ•ด if๋ฌธ ์—†์• ๊ธฐ

git : https://github.com/os94/java-coordinate/tree/enum-customException ๊ธฐ๋ณธ์ ์œผ๋กœ Figure๋ฅผ ์ƒ์†๋ฐ›๋Š” Line, Triangle, Rectangle ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  List points๋ฅผ ์ฃผ๋ฉด ์ด ์ค‘ ์–ด๋Š๊ฒƒ์„ ์ƒ์„ฑํ• ์ง€ mappingํ•˜๋Š” ์—ญํ• ์˜ ํŒฉํ† ๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ํŒฉํ† ๋ฆฌ๋‚ด์—์„  if๋ฌธ์„ ์—†์• ๊ณ ์ž map์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์ด ๊ณผ์ •์—์„œ ์‚ฌ์šฉ๋œ LineCreator, TriangleCreator, RectangleCreator๋ฅผ ์ƒ์†์‹œํ‚ค๋Š” FigureCreator ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ์ด๊ฒƒ์€ ๋‹จ์ˆœํžˆ create() ๋ฉ”์†Œ๋“œ ๋ผˆ๋Œ€๋งŒ ๊ฐ–๋Š”๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•œ 1์ฐจ์ ์ธ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (์ž์„ธํ•œ ์ฝ”๋“œ๋Š” git ์ปค๋ฐ‹๊ธฐ๋ก์„ ๋“ค์—ฌ๋‹ค ๋ณผ ๊ฒƒ) ์•„๋ž˜์˜ LineCre..

General, Java 2019. 9. 14. 14:38
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ