๐ฅ๏ธ ๋ฐฑ์๋63 ์ด์ 1 ยทยทยท 4 5 6 7 8 9 ๋ค์ [ch.14] ์คํธ๋ฆผ์ ์ค๊ฐ์ฐ์ฐ ์คํธ๋ฆผ ์๋ฅด๊ธฐ : skip, limit ์คํธ๋ฆผ์ ์ผ๋ถ๋ฅผ ์๋ผ๋ผ ๋ ์ฌ์ฉํจ. skip( ): n๊ฐ ๊ฑด๋๋ฐ๊ธฐ limit( ): ์์๋ฅผ n๊ฐ๋ก ์ ํํ๊ธฐ ๊ธฐ๋ณธํ ์คํธ๋ฆผ์๋ ๊ฐ์ ๋ฉ์๋๊ฐ ์์. ์คํธ๋ฆผ์ ์์ ๊ฑธ๋ฌ๋ด๊ธฐ : distinct, filter distinct( ): ์ค๋ณต ์ ๊ฑฐ filter( ): ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง๋ ๊ฒ๋ง ๋จ๊น. ๋งค๊ฐ๋ณ์๋ก Predicate๊ฐ ํ์ํจ. ์ฐ์ฐ๊ฒฐ๊ณผ๊ฐ boolean์ธ ๋๋ค์๋ ๊ฐ๋ฅํจ. ๋ค๋ฅธ ์กฐ๊ฑด์ ๋งค๊ฐ๋ณ์๋ก ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ ์ ์์. ex) ์คํธ๋ฆผ.filter(A).filter(B).filter(C) ์ ๋ ฌํ๊ธฐ : sorted, Comparator์ธํฐํ์ด์ค์ ๋ฉ์๋ sorted( ): ์ง์ ๋ Comparator๋ก ์คํธ๋ฆผ์ ์ ๋ ฌํจ. Comparator๋์ int๊ฐ์ ๋ฐํํ๋ ๋๋ค์์ .. 2023. 11. 15. [ch.14] ์คํธ๋ฆผ์ ์์ฑ ์คํธ๋ฆผ์ผ๋ก ์์ ํ๋ ค๋ฉด ์คํธ๋ฆผ์ด ํ์ํจ. ๋ค์ํ ์์ค๋ก๋ถํฐ ์คํธ๋ฆผ์ ์์ฑํ ์ ์์. ์ปฌ๋ ์ : stream Collection ์ธํฐํ์ด์ค์ stream( ) ์ ์๋์ด์์. List, Set์ ๊ตฌํํ ํด๋์ค๋ค์ ๋ชจ๋ ์ด ๋ฉ์๋๋ก ์คํธ๋ฆผ์ ์์ฑํ ์ ์์. stream( )๋ฉ์๋๋ ํด๋น ์ปฌ๋ ์ ์ ์์ค๋ก ํ๋ ์คํธ๋ฆผ์ ๋ฐํํจ. ๋ฐฐ์ด : stream, of ๋ฐฐ์ด์ ์์ค๋ก ํ๋ ์คํธ๋ฆผ์ ์์ฑํ๋ ๋ฉ์๋ ํน์ ๋ฒ์์ ์ ์ : range, rangeClosed IntStream, Long Streamํด๋์ค๋ ์ง์ ๋ ๋ฒ์์ ์ฐ์๋ ์ ์๋ฅผ ์คํธ๋ฆผ์ผ๋ก ์์ฑํด์ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์์. range( begin, end ), rangeClosed( begin, end ) ๋น์คํธ๋ฆผ : empty ์ฐ์ฐ์ ์ํํ ๊ฒฐ๊ณผ๊ฐ ์.. 2023. 11. 15. [ch.14] ์คํธ๋ฆผ์ ํน์ง ์คํธ๋ฆผ ๋ฐ์ดํฐ์์ค ์ถ์ํ + (์์ฃผ์ฌ์ฉํ๋)๋ฉ์๋ ์ ์ ๋ฐ์ดํฐ์์ค ์ถ์ํ: ๋ฐ์ดํฐ์์ค๊ฐ ๋ฌด์์ด๋ ๊ฐ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ=์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ↑ (๋ฐฐ์ด, ์ปฌ๋ ์ , ํ์ผ๋ฐ์ดํฐ ๋ชจ๋ ๊ฐ๋ฅํจ) ์ ํ์คํธ๋ฆผ/๋ฌดํ์คํธ๋ฆผ์ด ์์. ์คํธ๋ฆผ์ ํน์ง โ ์คํธ๋ฆผ์ ๋ฐ์ดํฐ ์์ค๋ฅผ ๋ณ๊ฒฝํ์ง ์๋๋ค. ๋ฐ์ดํฐ ์์ค๋ก๋ถํฐ ์ฝ๊ธฐ๋ง ํจ. ๋ณ๊ฒฝ์ X. ํ์์ ๋ฐํ์ด ๊ฐ๋ฅํจ(๊ฒฐ๊ณผ๋ฅผ ๋ด์ ์ปฌ๋ ์ /๋ฐฐ์ด) โ ์คํธ๋ฆผ์ ์ผํ์ฉ์ด๋ค. ํ ๋ฒ ์ฌ์ฉํ๋ฉด(์ต์ข ์ฐ์ฐ์ํ) ์คํธ๋ฆผ ๋ซํ์ ๋ค์ ์ฌ์ฉํ ์ ์์. ํ์์ ๋ค์ ์์ฑํ๋ฉด ๋จ. โ ์คํธ๋ฆผ์ ์์ ์ ๋ด๋ถ๋ฐ๋ณต์ผ๋ก ์ฒ๋ฆฌํ๋ค. ๋ด๋ถ๋ฐ๋ณต=๋ฐ๋ณต๋ฌธ์ ๋ฉ์๋ ๋ด๋ถ์ ์จ๊ธธ ์ ์๋ ๊ฒ. โ ์คํธ๋ฆผ์ ์ฐ์ฐ์ ์ค๊ฐ์ฐ์ฐ๊ณผ ์ต์ข ์ฐ์ฐ์ด ์๋ค. ๋ค์ํ ์ฐ์ฐ์ ์ ๊ณตํด์ ๋ณต์กํ ์์ ๋ค์ ๊ฐ๋จํ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ฐ๋ฅํจ. *์ค๊ฐ์ฐ์ฐ:.. 2023. 11. 15. [ch.14] java.util.function ํจํค์ง ์ผ๋ฐ์ ์ผ๋ก ์์ฃผ ์ฐ์ด๋ ํ์์ ๋ฉ์๋๋ฅผ ํจ์ํ ์ธํฐํ์ด์ค๋ก ๋ฏธ๋ฆฌ ์ ์ํด๋ . java.util.function ํจํค์ง์ ์ธํฐํ์ด์ค๋ค์ ๋งค๊ฐ๋ณ์์ ๋ฐํ๊ฐ ๋ชจ๋ ์ ๋ค๋ฆญ ํ์ ์ผ๋ก ์ ์ธ๋์ด ์์. ๋ฐ๋ผ์ ๊ธฐ๋ณธํ ๊ฐ(primitive type)์ ์ฒ๋ฆฌํ ๋๋ ํด๋น ๊ธฐ๋ณธํ์ ๋ํผ(wrapper) ํด๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํจ. ์กฐ๊ฑด์ ํํ์ ์ฌ์ฉ๋๋ Predicate predicate๋ Function์ ๋ณํ์ผ๋ก ๋ฐํํ์ ์ด boolean์. ์กฐ๊ฑด์์ ๋๋ค์์ผ๋ก ํํํ ๋ ์ฌ์ฉํจ. java.util.function ํจํค์ง์ ํจ์ํ ์ธํฐํ์ด์ค์ ์ ์๋ ๋ฉ์๋๋ค ๊ธฐ๋ณธํ์ ์ฌ์ฉํ๋ ํจ์ํ ์ธํฐํ์ด์ค ๋จ์ง ์ฑ๋ฅ ๋๋ฌธ์ ์ฌ์ฉํจ. Function์ ํฉ์ฑ ๋ ๋๋ค์์ ํฉ์ฑํด์ ์๋ก์ด ๋๋ค์์ ๋ง๋ค ์ ์์. ์ด๋ ํจ์๋ฅผ ๋จผ์ ์ ์ฉํ๋๋์ .. 2023. 11. 15. [ch.14] ๋๋ค์ ๋๋ค์ ๋ฉ์๋๋ฅผ ๊ตฌํํ๋ ์ฝ๋ ๋ธ๋ก ์์ฒด๋ฅผ ์ ๋ฌํจ. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ฐ๋ ์ ์ ์ฉํ ๊ฒ. ๋๋ค์์ผ๋ก ํจ์ํ ์ธํฐํ์ด์ค๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํํ ์ ์์. ํจ์ํ ์ธํฐํ์ด์ค ๋๋ค์์ ๋ค๋ฃจ๊ธฐ ์ํ ์ธํฐํ์ด์ค. ์ค์ง ํ๋์ ์ถ์๋ฉ์๋๋ง ์ ์๋์ด์์ด์ผํจ(์ ์ฝ) ๊ทธ๋์ผ ๋๋ค์๊ณผ ์ธํฐํ์ด์ค์ ๋ฉ์๋๊ฐ 1:1์ฐ๊ฒฐ. static๋ฉ์๋์ default๋ฉ์๋๋ ๊ฐ์ ์ ์ฝX ์ต๋ช ๊ฐ์ฒด๋ฅผ ๋๋ค์์ผ๋ก ๋์ฒด ๊ฐ๋ฅํ ์ด์ ๋๋ค์์ ์ค์ ๋ก ์ต๋ช ๊ฐ์ฒด์. ํจ์ํ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ์ต๋ช ๊ฐ์ฒด์ ๋ฉ์๋์ ๋๋ค์์ ๋งค๊ฐ๋ณ์ ํ์ ๊ณผ ๊ฐ์, ๋ฐํ๊ฐ์ด ์ผ์นํด์. ๋ฉ์๋ ์ฐธ์กฐ ์ด๋ฏธ ๊ตฌํ๋ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ์ฌ ์ฌ์ฉํจ. ์ฝ๋ ์ค๋ณต ๋ฐฉ์ง. ๊ฐ๋ ์ฑ↑, ์ฝ๋์ ๊ฐ๊ฒฐํ ์์ฑ. ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํจ. ๋๋ค์์ ํธ์ถํ๋ ์ฐธ์กฐ๋ณ์ f์ ํ์ ๋๋ค์๊ณผ ๋๋ฑํ ๋ฉ์.. 2023. 11. 15. [CH.13] ์ฐ๋ ๋์ ๋๊ธฐํ(Lock) ์ฐ๋ ๋์ ๋๊ธฐํ ํ ์ฐ๋ ๋๊ฐ ํน์ ์์ ์ ๋๋ง์น๊ธฐ ์ ๊น์ง, ๋ค๋ฅธ ์ฐ๋ ๋์ ์ํด ๋ฐฉํด๋ฐ์ง ์์์ผ ํจ. ๋ฉํฐ์ฐ๋ ๋ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ๊ฐ์ ์์์ ๊ณต์ ํด์ ์์ ํ๋ฏ๋ก ์๋ก ์์ ์ ์ํฅ์ ์ค. ์๊ณ์์ญ : ๊ณต์ ๋ฐ์ดํฐ(์์)๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋ ์์ญ ๋ฝ : ์ ๊ธ, ๊ณต์ ๋ฐ์ดํฐ์ ๋ฝ์ ํ๋ํ ๋จ ํ๋์ ์ฐ๋ ๋๋ง ์๊ณ์์ญ ๋ด์ ์ฝ๋๋ฅผ ์ํํ ์ ์์. ๊ฐ์ฒด ๋จ์(๋ณ์๋ฌถ์, ๋ฐ์ดํฐ)๋ก ๋ฝ์ด ๊ฑธ๋ฆผ. ์ํ ํ์๋ lock์ ๋ฐ๋ฉํด์ผ ๋ค๋ฅธ ์ฐ๋ ๋ ์ํ์ด ๊ฐ๋ฅํจ. โ synchronized๋ฅผ ์ด์ฉํ ๋๊ธฐํ โกwait( )๊ณผ notify( )๋ฅผ ์ด์ฉํ ๋๊ธฐํ โขLock๊ณผ Condition์ ์ด์ฉํ ๋๊ธฐํ ์ฐ๋ ๋ ๋๊ธฐํ 3๊ฐ์ง ๋ฐฉ๋ฒ synchronized โ ๋ฉ์๋ ์ ์ฒด๋ฅผ ์๊ณ์์ญ์ผ๋ก ์ง์ ๋ฐํํ์ ์์ synchronized๋ถ์ด๊ธฐ.. 2023. 11. 15. [ch.13] ์ฐ๋ ๋ ์คํ ์ ์ด ๋ฉ์๋ ์ฐ๋ ๋์ ์คํ ์ ์ด “ํจ์จ์ ์ธ ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ” =์ ๊ตํ ์ค์ผ์ค๋ง์ ํตํด ํ๋ก์ธ์ค์๊ฒ ์ฃผ์ด์ง ์์๊ณผ ์๊ฐ์ ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ๋ญ๋น์์ด ์ ์ฌ์ฉํ๋๋ก ํ๋ก๊ทธ๋๋ฐ ํ๋ ๊ฒ. ๋ฉ์๋(1) static๋ฉ์๋๋ผ ์์ ์๊ฒ๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํจ. (์์ =ํ์ฌ ์คํ ์ค์ธ ์ฐ๋ ๋) ๋ฉ์๋(2) ์ฐ๋ ๋์ ์ค์ผ์ค๋ง ๊ด๋ จ ๋ฉ์๋ sleep(์๊ฐ) static๋ฉ์๋ ์ง์ ๋ ์๊ฐ๋์ ์ฐ๋ ๋ ๋ฉ์ถ๊ธฐ. sleep์ ์ํด ์ผ์์ ์ง๋ ์ฐ๋ ๋๋ฅผ ๊นจ์ฐ๋(์คํ๋๊ธฐ ์ํ๋ก ๋ง๋ค๊ธฐ) ๋ฐฉ๋ฒ โ ์ง์ ๋ ์๊ฐ ๋ค ๋๊ธฐ โก interrupt( )ํธ์ถ sleep( )ํธ์ถ ์ ๋ฐ๋์ try-catch๋ฌธ์ผ๋ก ์์ธ์ฒ๋ฆฌ ํด์ฃผ์ด์ผ ํจ. (์ด๊ฒ์ ๋ฉ์๋๋ก ๋ง๋ค์ด๋ ๋จ) ๋ค๋ฅธ ์ฐ๋ ๋๊ฐ ํ์ฌ ์ฐ๋ ๋์๊ฒ interruptํ๋ฉด sleep( )๋ฉ์๋๊ฐ Interrupted.. 2023. 11. 15. ์ด์ 1 ยทยทยท 4 5 6 7 8 9 ๋ค์