๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java

[ch.14] ์ŠคํŠธ๋ฆผ์˜ ์ƒ์„ฑ

by OR15A 2023. 11. 15.

  • ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ž‘์—…ํ•˜๋ ค๋ฉด ์ŠคํŠธ๋ฆผ์ด ํ•„์š”ํ•จ.
  • ๋‹ค์–‘ํ•œ ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ.

 

์ปฌ๋ ‰์…˜ : stream

  • Collection ์ธํ„ฐํŽ˜์ด์Šค์— stream( ) ์ •์˜๋˜์–ด์žˆ์Œ.
  • List, Set์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ ์ด ๋ฉ”์„œ๋“œ๋กœ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ.
  • stream( )๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ์ปฌ๋ ‰์…˜์„ ์†Œ์Šค๋กœ ํ•˜๋Š” ์ŠคํŠธ๋ฆผ์„ ๋ฐ˜ํ™˜ํ•จ.

 

๋ฐฐ์—ด : stream, of

  • ๋ฐฐ์—ด์„ ์†Œ์Šค๋กœ ํ•˜๋Š” ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ

 

ํŠน์ • ๋ฒ”์œ„์˜ ์ •์ˆ˜ : range, rangeClosed

  • IntStream, Long Streamํด๋ž˜์Šค๋Š” ์ง€์ •๋œ ๋ฒ”์œ„์˜ ์—ฐ์†๋œ ์ •์ˆ˜๋ฅผ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.
  • range( begin, end ), rangeClosed( begin, end )

 

๋นˆ์ŠคํŠธ๋ฆผ : empty

  • ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์—†์„ ๋•Œ ์š”์†Œ๊ฐ€ 1๊ฐœ๋„ ์—†๋Š” ๋นˆ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ.
  • null๋ณด๋‹ค ๋นˆ์ŠคํŠธ๋ฆผ ๋ฐ˜ํ™˜์ด ๋” ๋‚ซ๋‹ค.
  • empty( )๋ฉ”์„œ๋“œ ์‚ฌ์šฉํ•จ.
  • count( )๊ฐ’์€ 0.

 

๋‘ ์ŠคํŠธ๋ฆผ์˜ ์—ฐ๊ฒฐ : concat

  • Stream์˜ static๋ฉ”์„œ๋“œ์ธ concat( )์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‘ ์ŠคํŠธ๋ฆผ์„ ํ•˜๋‚˜๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ
  • (๋‘ ์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ๊ฐ€ ๊ฐ™์€ ํƒ€์ž…์ด๋ผ๋Š” ์ „์ œํ•˜์— ๊ฐ€๋Šฅํ•จ)

 

์ž„์˜์˜ ์ˆ˜ : ints, longs, doubles

  • โ‘ Randomํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ํƒ€์ž…์˜ ๋‚œ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ŠคํŠธ์ž„์„ ๋ฐ˜ํ™˜ํ•จ.
    • โ†ณ ints( ), longs( ), doubles( ) : ๋ฐ˜ํ™˜์ŠคํŠธ๋ฆผ์€ ๋ฌดํ•œ์ŠคํŠธ๋ฆผ์ž„( limit( )ํ•„์š”ํ•จ )
  • โ‘ก๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ŠคํŠธ๋ฆผ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•ด์ฃผ๋ฉด ์œ ํ•œ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•จ.
    • โ†ณ int( long streamSize )
  • โ‘ข๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋‚œ์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ.
    • โ†ณ int ( int begin, int end )
  • โ‘ก+โ‘ข=int ( long streamSize, int begin, int end ) :IntStream์„ ๋ฐ˜ํ™˜ํ•จ.

 

๋žŒ๋‹ค์‹ : iterate, generate

  • Stream์ธํ„ฐํŽ˜์ด์Šค์˜ static๋ฉ”์„œ๋“œ iterate( s, r ) / generate( r )

  • ๋žŒ๋‹ค์‹์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์„œ ๋žŒ๋‹ค์‹์— ์˜ํ•ด ๊ณ„์‚ฐ๋˜๋Š” ๊ฐ’๋“ค์„ ์š”์†Œ๋กœ ํ•˜๋Š” ๋ฌดํ•œ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•จ.
  • iterate์™€ generate๋กœ ์ƒ์„ฑ๋œ ์ŠคํŠธ๋ฆผ์€ ๊ธฐ๋ณธํ˜•์ŠคํŠธ๋ฆผ ํƒ€์ž…์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๋กœ ๋‹ค๋ฃฐ ์ˆ˜์—†์Œ.

 

ํŒŒ์ผ : list, lines, line

  • java.nio.file.files๋Š” ํŒŒ์ผ์„ ๋‹ค๋ฃจ๋Š”๋ฐ ์œ ์šฉํ•œ ๋ฉ”์„œ๋“œ๋“ค์„ ์ œ๊ณตํ•จ.
  • list( Path dir ): ์ง€์ •๋œ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ๋ชฉ๋ก์„ ์†Œ์Šค๋กœํ•˜๋Š” ์ŠคํŠธ๋ฆผ์ƒ์„ฑ
  • File.lines( Path path ): ๋‹ค๋ฅธ ์ž…๋ ฅ ๋Œ€์ƒ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰๋‹จ์œ„๋กœ ์ฝ์Œ
  • BufferdReaderํด๋ž˜์Šค์˜ line( )๋ฉ”์„œ๋“œ๋„ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•จ.