πŸ–₯️ λ°±μ—”λ“œ/Java

[ch.14] 슀트림의 생성

OR15A 2023. 11. 15. 20:56

  • 슀트림으둜 μž‘μ—…ν•˜λ €λ©΄ 슀트림이 ν•„μš”ν•¨.
  • λ‹€μ–‘ν•œ μ†ŒμŠ€λ‘œλΆ€ν„° μŠ€νŠΈλ¦Όμ„ 생성할 수 있음.

 

μ»¬λ ‰μ…˜ : 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( )λ©”μ„œλ“œλ„ 같은 κΈ°λŠ₯을 함.