๋ฐ์ํ
Stream๐
: ๋ค์ํ ๋ฐ์ดํฐ ์์ค(Collection, array)๋ฅผ
ํ์คํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ํ ํจํค์ง.
- ์คํธ๋ฆผ๋ง๋ค๊ธฐ
- ์ค๊ฐ์ฐ์ฐ - ์ฐ์ฐ๊ฒฐ๊ณผ๊ฐ ์คํธ๋ฆผโญ. n๋ฒ ์ํ๊ฐ๋ฅ.
- ์ต์ข ์ฐ์ฐ - ์ฐ์ฐ๊ฒฐ๊ณผ๊ฐ ์คํธ๋ฆผโ. 1๋ฒ๋ง ์ํ๊ฐ๋ฅ.
๐ก Collectionsํจํค์ง๋ก ์ปฌ๋ ์ ๊ฐ์ฒด๋ค(List, Set, Map)์ ๋ค๋ฃฐ ์ ์์ง๋ง
์ปฌ๋ ์ ๊ฐ์ฒด์ ์ฑ๊ฒฉ์ด ๋ง์ด ๋ฌ๋ผ ์ฌ์ฉ๋ฒ์ด ์ผ์น๋์ง ์์์์ต๋๋ค.
JDK1.8๋ถํฐ Stream์ด ๋ค์ด์ค๋ฉด์ ๋ฐฐ์ด๊ณผ ์ปฌ๋ ์ ์ ๊ฐ์ง๊ณ ์คํธ๋ฆผ์ ๋ง๋ค์ด ์ฌ์ฉ๋ฒ์ ํต์ผํ์์ต๋๋ค.
ํน์ง
๐ก ์ต์ข ์ฐ์ฐ์์ Stream์ ์๋ชจํ๋ค.
๋ฐ๋ผ์ ์ฌ์ฌ์ฉ ์ ์คํธ๋ฆผ์ด ์ด๋ฏธ ๋ซํ๋ค๋ ์์ธ๊ฐ ๋ฌ๋ค.
- ์ต์ข ์ฐ์ฐ๊น์ง ์ค๊ฐ์ฐ์ฐ์ ์คํ๋์ง ์๋๋ค.
- IntStream intStream = new Random().ints(1, 46);
- ๋ฌดํ ์คํธ๋ฆผ.
- ๋์์ด, ๋ฌดํ์ผ๋ก ์ซ์๋ฅผ ๋ง๋ค์ด๋ธ๋ค.
- intStream.distinct().limit(6).sorted()
- ์ค๊ฐ์ฐ์ฐ.
- ๋ฌดํํ ์ซ์๋ฅผ ์๋ผ๋ด๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง ์คํธ๋ฆผ์ ์ต์ข ์ฐ์ฐ์์ ์ํํ๊ธฐ์ ์ด ์ฝ๋๋ ๊ฐ๋ฅํ๋ค.
- ๊ธฐ๋ณธํ ์คํธ๋ฆผ - IntStream, LongStream, DoubleStream
- ์คํ ๋ฐ์ฑ&์ธ๋ฐ์ฑ์ ๋นํจ์จ์ด ์ ๊ฑฐ๋๋ค.
- Stream<Integer> → IntStream ์ฌ์ฉ.
- ์ซ์์ ๊ด๋ จ๋ ์ ์ฉํ ๋ฉ์๋๋ฅผ Stream<T>๋ณด๋ค ๋ ๋ง์ด ์ฌ์ฉํ๋ค
- count(), sum(), average() ๋ฑ ์ถ๊ฐ ๋ฉ์๋๋ค์ ์ ๊ณตํ๋ค.
- ์คํ ๋ฐ์ฑ&์ธ๋ฐ์ฑ์ ๋นํจ์จ์ด ์ ๊ฑฐ๋๋ค.
๋ฐ์ํ
'โ JAVA > โ Class & Method' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA][Stream]์ค๊ฐ ์ฐ์ฐ-filter() distinct() skip() limit() sorted() (0) | 2024.12.16 |
---|---|
[JAVA][Stream]์คํธ๋ฆผ ์์ฑ (1) | 2024.12.13 |
[JAVA]๋ฉ์๋ ์ฐธ์กฐ method reference (0) | 2024.12.12 |
[JAVA]Predicate ๊ฒฐํฉ, Function ๊ฒฐํฉ (0) | 2024.12.12 |
[JAVA][Thread]wait() & notify() (0) | 2024.12.10 |