MapleStory Cookie With Halo

โ˜• JAVA/โ˜• Class & Method

[JAVA][stream]์ŠคํŠธ๋ฆผ์ด๋ž€? (+ํŠน์ง•)

๋‰ด์ด NUEY 2024. 12. 13. 02:56
๋ฐ˜์‘ํ˜•

 

Stream๐ŸŒŠ
: ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค(Collection, array)๋ฅผ
ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํŒจํ‚ค์ง€.

 

์ŠคํŠธ๋ฆผ์€ 3๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ์‚ฌ์šฉํ•œ๋‹ค.

  1. ์ŠคํŠธ๋ฆผ๋งŒ๋“ค๊ธฐ
  2. ์ค‘๊ฐ„์—ฐ์‚ฐ - ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ์ŠคํŠธ๋ฆผโญ•. n๋ฒˆ ์ˆ˜ํ–‰๊ฐ€๋Šฅ.
  3. ์ตœ์ข…์—ฐ์‚ฐ - ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ์ŠคํŠธ๋ฆผโŒ. 1๋ฒˆ๋งŒ ์ˆ˜ํ–‰๊ฐ€๋Šฅ.

 

์˜ˆ์‹œ1. ์–ด๋–ค ๊ฒŒ ์ค‘๊ฐ„๊ณผ์ •์ธ ์ง€ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ŠคํŠธ๋ฆผ์€ ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ์— ์œ„ ์ฝ”๋“œ์—์„œ๋Š” ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.(์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋’ค์—)

 

์˜ˆ์‹œ2

 

๐Ÿ’ก CollectionsํŒจํ‚ค์ง€๋กœ ์ปฌ๋ ‰์…˜ ๊ฐ์ฒด๋“ค(List, Set, Map)์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์ง€๋งŒ

2024.11.27 - [โ˜• ์ž๋ฐ” JAVA/โ˜• ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜ Class & Method] - [JAVA]Collections:์ปฌ๋ ‰์…˜์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ ๋ชจ์Œ

์ปฌ๋ ‰์…˜ ๊ฐ์ฒด์˜ ์„ฑ๊ฒฉ์ด ๋งŽ์ด ๋‹ฌ๋ผ ์‚ฌ์šฉ๋ฒ•์ด ์ผ์น˜๋˜์ง€ ์•Š์•˜์—ˆ์Šต๋‹ˆ๋‹ค.
JDK1.8๋ถ€ํ„ฐ Stream์ด ๋“ค์–ด์˜ค๋ฉด์„œ ๋ฐฐ์—ด๊ณผ ์ปฌ๋ ‰์…˜์„ ๊ฐ€์ง€๊ณ  ์ŠคํŠธ๋ฆผ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ๋ฒ•์„ ํ†ต์ผํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 


 

ํŠน์ง•

 

์›๋ณธ ๋ฐ์ดํ„ฐ(ex. lst)๋ฅผ ์ฝ๊ธฐ๋งŒ ํ•  ๋ฟ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.

 


 

์ผํšŒ์šฉ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค (ํ•„์š”์‹œ ๋‹ค์‹œ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•ด์•ผ ํ•จ)
์œ„ ์ฝ”๋“œ ์‹คํ–‰์‹œ ์˜ˆ์™ธ ๋ฐœ์ƒ.

๐Ÿ’ก ์ตœ์ข…์—ฐ์‚ฐ์—์„œ Stream์„ ์†Œ๋ชจํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ์žฌ์‚ฌ์šฉ ์‹œ ์ŠคํŠธ๋ฆผ์ด ์ด๋ฏธ ๋‹ซํ˜”๋‹ค๋Š” ์˜ˆ์™ธ๊ฐ€ ๋œฌ๋‹ค.

 


 

  • ์ตœ์ข…์—ฐ์‚ฐ๊นŒ์ง€ ์ค‘๊ฐ„์—ฐ์‚ฐ์€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.
  • IntStream intStream = new Random().ints(1, 46);
    • ๋ฌดํ•œ ์ŠคํŠธ๋ฆผ.
    • ๋์—†์ด, ๋ฌดํ•œ์œผ๋กœ ์ˆซ์ž๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.

  • intStream.distinct().limit(6).sorted()
    • ์ค‘๊ฐ„์—ฐ์‚ฐ.
    • ๋ฌดํ•œํ•œ ์ˆซ์ž๋ฅผ ์ž˜๋ผ๋‚ด๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
      ํ•˜์ง€๋งŒ ์ŠคํŠธ๋ฆผ์€ ์ตœ์ข…์—ฐ์‚ฐ์—์„œ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— ์ด ์ฝ”๋“œ๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค.

 


 

์ŠคํŠธ๋ฆผ์€ ์ž‘์—…์„ ๋‚ด๋ถ€ ๋ฐ˜๋ณต์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. stream์˜ forEach()๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ๋„ for๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.

 


 

์ŠคํŠธ๋ฆผ ์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ณ‘๋ ฌ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ)

 


 

  • ๊ธฐ๋ณธํ˜• ์ŠคํŠธ๋ฆผ - IntStream, LongStream, DoubleStream
    • ์˜คํ† ๋ฐ•์‹ฑ&์–ธ๋ฐ•์‹ฑ์˜ ๋น„ํšจ์œจ์ด ์ œ๊ฑฐ๋œ๋‹ค.
      • Stream<Integer> → IntStream ์‚ฌ์šฉ.
    • ์ˆซ์ž์™€ ๊ด€๋ จ๋œ ์œ ์šฉํ•œ ๋ฉ”์„œ๋“œ๋ฅผ Stream<T>๋ณด๋‹ค ๋” ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค
      • count(), sum(), average() ๋“ฑ ์ถ”๊ฐ€ ๋ฉ”์„œ๋“œ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

 


์ฐธ์กฐ์˜์ƒ

๋ฐ˜์‘ํ˜•