Item 45. Stream
μ€νΈλ¦Όμ μ£Όμν΄μ μ¬μ©νλΌ
μ€νΈλ¦Ό APIλ λ€λμ λ°μ΄ν° μ²λ¦¬ μμ μ μ²λ¦¬νλ κ²μ λμ μ£Όλλ°, ν΅μ¬ μΆμ κ°λ μ μλ λ κ°μ§λΌκ³ ν μ μλ€.
μ€νΈλ¦Όμ λ°μ΄ν° μμμ μ ν νΉμ 무ν μνμ€λ₯Ό λ»νλ€.
μ€νΈλ¦Ό νμ΄νλΌμΈμ μ΄ μμλ€λ‘ μννλ μ°μ° λ¨κ³λ₯Ό νννλ€.
μ€νΈλ¦Ό μμ λ°μ΄ν° μμλ€μ κ°μ²΄ μ°Έμ‘°λ κΈ°λ³Έ νμ κ°(int, long double)μ ν¬ν¨ν μ μλ€.
μ€νΈλ¦Ό μ°μ°
μ€νΈλ¦Όμ μμ€ μ€νΈλ¦Όμμ μμν΄ μ’ λ¨ μ°μ°μΌλ‘ λλλ©°, κ·Έ μ¬μ΄μ νλ μ΄μμ μ€κ° μ°μ°μ΄ μμ μ μλ€.
μ€κ° μ°μ°(intermediate operation) : μ€νΈλ¦Όμ μ΄λ ν λ°©μμΌλ‘ λ³ννλ μ°μ°(λ°μ΄ν° μμμ νμ μ΄ λ°λ μ μμ)
μ’ λ¨ μ°μ°(terminal operation) : μ€νΈλ¦Ό νμ΄νλΌμΈμμ κ²°κ³Όλ₯Ό λμΆνλ μ°μ°
μ€νΈλ¦Ό νμ΄νλΌμΈμ μ§μ° μ€νλκΈ° λλ¬Έμ, μ’ λ¨ μ°μ°μ΄ νΈμΆλλ μμ μ λͺ¨λ μ€κ° μ°μ°μ΄ μ μ©λλ€. λν μ€νΈλ¦Ό APIλ λ©μλ μ°μλ₯Ό μ§μνλ ν루μΈνΈ API(fluent API)μ΄κΈ° λλ¬Έμ, νμ΄νλΌμΈ νλλ₯Ό ꡬμ±νλ λͺ¨λ νΈμΆμ μ°κ²°νμ¬ λ¨μΌ ννμμΌλ‘ λ§λ€ μ μλ€.
κ³Όν μ€νΈλ¦Ό
μ€νΈλ¦Όμ μ¬μ©νλ©΄ μ½λκ° κ°κ²°ν΄μ§κ³ κ°λ μ±μ΄ μ’μμ§λ κ²½μ°κ° λ§μ§λ§, κ³Όνκ² μ¬μ©νλ κ²½μ°μ μ€νλ € μ½λκ° λ 볡μ‘ν΄μ§ μ μλ€.
μ½λμ κΈΈμ΄λ§ 짧μμ‘μ λΏ, μ€νΈλ¦Όμ μ¬μ©ν μͺ½μ μ½λκ° λ 볡μ‘νκ³ μ΄ν΄νκΈ° μ΄λ ΅λ€κ³ λ³Ό μ μλ€. λͺ¨λ μ°μ°μ μ€νΈλ¦Όμμ μννλ κ²μ΄ μλλΌ μ μ ν μ¬μ©νλ κ²μ΄ μ€μνλ€.
κΈ°λ³Έ νμ
μ΄ μλ μ€νΈλ¦Ό μ¬μ©
μ€νΈλ¦Όμ κΈ°λ³Έμ μΌλ‘ int, long, double νμ λ§ μ§μνλλ°, μ΄μΈμ νμ μ μ¬μ©νλ©΄ μλνμ§ μμ λμμ΄ λ°μν μ μλ€.
μμ κ°μ΄ char νμ μ μ¬μ©ν λλ λͺ μμ μΌλ‘ νλ³νμ ν΄μ£Όμ΄μΌ νλ€. μ΄λ κ°λ μ±μ΄ λ¨μ΄μ§κ³ μ€λ₯κ° λ°μν κ°λ₯μ±μ΄ λκΈ° λλ¬Έμ μ¬μ©νμ§ μλ κ²μ΄ μ’λ€.
μλ§λ μ€νΈλ¦Ό μ¬μ©
μ€νΈλ¦Όμ κ³Όνκ² μ¬μ©νλ κ²μ μ μ’μ§λ§, μλμ κ°μ μν©μμλ μ€νΈλ¦Όμ μ¬μ©μ κ³ λ €ν΄λ³Ό μ μλ€.
μμλ€μ μνμ€λ₯Ό μΌκ΄λκ² λ³ν
μμλ€μ μνμ€λ₯Ό νν°λ§
μμλ€μ μνμ€λ₯Ό νλμ μ°μ°μ μ¬μ©ν΄ κ²°ν©(+, concat, min, max λ±)
μμλ€μ μνμ€λ₯Ό 컬λ μ μ λͺ¨μΌκΈ°(toList, toSet λ±)
μμλ€μ μνμ€μμ νΉμ 쑰건μ λ§μ‘±νλ μμλ₯Ό μ°ΎκΈ°(findAny, anyMatch λ±)
νμ§λ§ μ μν©μ΄λΌκ³ 무쑰건 μ€νΈλ¦Όμ μ¬μ©ν΄μΌ νλ κ²μ μλκ³ , κ²°κ΅μ κ°μ μΌμ μννλ μ½λλ₯Ό κ°μΈ μ·¨ν₯μΌλ‘ μ ννλ κ²μ΄κΈ° λλ¬Έμ λ μ€ λ λμ κ²μ μ ννλ©΄ λλ€.
Last updated
Was this helpful?