컬λ μ μ²λ¦¬λ κ΅μ₯ν λΉλ²νκ² μΌμ΄λλ μμ μΌλ‘ νμμ κ°μ₯ λ§μ΄ μ¬μ©νλ μλ£κ΅¬μ‘°κ° μλκΉ μΆμ΅λλ€.
νΉν μ½νλ¦°μ μ¬μ©νλ©΄μ μλ°μλ μ‘΄μ¬νμ§ μλ μ μ©ν ν¨μλ€μ΄ λ§μμ κ΅μ₯ν μ νμ©νκ³ μλλ°μ, μ΄μ κ΄λ ¨νμ¬ μ΄λ² ν¬μ€ν μμλ μ½νλ¦° 컬λ μ μ μ‘΄μ¬νλ μ¬λ¬ ν¨μλ€μ λν΄ μ΄ν΄λ³΄κ² μ΅λλ€.
https://www.yes24.com/product/goods/132756874
μ½νλ¦° μμΉ΄λ°λ―Έ : ν¨μν νλ‘κ·Έλλ° - μμ€24
λ μ½κ² ν¨μν νλ‘κ·Έλλ°μ λ°°μ°λ λ°©λ²!μ΄ μ± μ μ½νλ¦°μ ν¨μν νλ‘κ·Έλλ° νΉμ§μ μ¬λ μκ² νꡬνλ μλ²½ν κ°μ΄λμ΄λ€. κΈ°λ³Έ κ°λ μ μ°¨κ·Όμ°¨κ·Ό μ€λͺ νλ©°, 컬λ μ μ²λ¦¬, ν¨μ μ°Έμ‘°, μ€μ½
www.yes24.com
π Kotlin Collection
1. forEach, onEach, filter, filterNot, map, mapNotNull, flatMap, fold, reduce, sum, sumOf
forEach, onEach
forEachλ κ°λ¨ν forλ¬Έμ λ체νλ ν¨μλ‘, for λ¬Έμ²λΌ λͺ¨λ μμμ λν΄ μ°μ°μ μνν©λλ€.
forEachλ Unitμ λ°ννλ―λ‘ μ΅μ’ μ°μ°μ λλ€. μ΄λ, 컬λ μ μ²λ¦¬ νμ΄νλΌμΈμμ forEach μ΄νλ‘ λ€λ₯Έ μ°μ°μ μ§νν μ μμ΅λλ€.
νμ§λ§ 컬λ μ μ²λ¦¬ λμ€ μμ κ°κ°μ λν μ°μ°μ μνν΄μΌ ν λλ μλλ°μ, μ΄λ¬ν κ²½μ° μμλ³ μ°μ°μ μνν ν μ°μ°μ λ§μΉ 컬λ μ μ κ·Έλλ‘ λ°ννλ onEachλ₯Ό μ¬μ©ν μ μμ΅λλ€.
onEachλ μ²μ μκ² λμλλ°, κ½€λ μ μ©νκ² νμ©ν μ μμ κ² κ°λ€μ.
filter
filterλ κ΅μ₯ν λΉλ²νκ² μ¬μ©νλ ν¨μλ‘, 컬λ μ μμ νΉμ μμμλ§ κ΄μ¬μ΄ μλ κ²½μ°μ μ¬μ©ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄ μ 체 μ¬μ©μ λͺ©λ‘ μ€ νμ± μ¬μ©μλ§ νν°λ§μ νκ±°λ, μ 체 κΈ°μ¬ λͺ©λ‘ μ€ κ³΅κ°λ κΈ°μ¬λ€λ§ 보μ¬μ£Όκ³ μΆμ κ²½μ° μ¬μ©ν©λλ€.
μ΄λ΄ λ predicateλ₯Ό λ§μ‘±νλ μμλ€μ 컬λ μ λ§ λ°ννλ filter λ©μλλ₯Ό μ¬μ©ν©λλ€.
filterλ κ±Έλ¬λ΄λ€ λΌλ λ»μΌλ‘ μ°μ¬μ μ²μμλ νν°λ§μ΄ λλ건μ§, νν°κ° λμ§ μκ³ λ¨μ μμλ€μ ν¬ν¨νλκ±΄μ§ κ΅μ₯ν ν·κ°λ Έμλλ°, νλ‘κ·Έλλ°μμ filterλ 'λ¨μ μλ κ²'μ μ΄μ μ λκ³ μκ°μ νλ©΄ λ©λλ€.
λ°λΌμ filter ν¨μλ '...ν μμλ€μ λ¨κΈ°λ νν°'λ‘ μ΄ν΄νλ©΄ ν·κ°λ¦¬μ§ μκ³ μ¬μ©ν μ μμ΅λλ€.
(νΉμλ ν·κ°λ¦¬λλΌλ λ΄λΆ μ½λλ₯Ό 보면 λ°λ‘ μ΄ν΄κ° κ°λ₯νκ²λ μ§κ΄μ μ λλ€.)
filterNot
filterNot ν¨μλ λ€μ΄λ° κ·Έλλ‘ filter + NotμΌλ‘, 'λ§μ‘±νμ§ μλ' μμλ§ λ¨κΈ°λ ν¨μμ λλ€.
λ°λΌμ filter { !op(it) } μ κ°μ΅λλ€.
map
λͺ¨λ μμλ₯Ό λ³νν΄μ£Όλ mapμ κ°μΈμ μΌλ‘ 컬λ μ μμ κ°μ₯ λ§μ΄ μ¬μ©νλ ν¨μ μ€ νλμ λλ€.
mapμ λμΌν ν¬κΈ°μ 컬λ μ μ μμ±νλλ°, μμλ€μ λ³νλ μ μκ³ , νμ λν λ³κ²½λ μ μμ΅λλ€.
mapNotNull
mapNotNullμ κΈ°λ³Έμ μΌλ‘ mapκ³Ό λμΌνμ§λ§ null κ°μ 무μν©λλ€. λ°λΌμ, μ±λ₯μ΄ μ€μν μ½λμμ 컬λ μ μ²λ¦¬λ₯Ό μ΅μ νν λ μ μ©νκ² μ¬μ©ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, λ¬Έμμ΄ λ¦¬μ€νΈλ₯Ό μ«μ 리μ€νΈλ‘ λ³ννλ©΄μ μ λλ‘ νμ±λμ§ μλ λ¬Έμμ΄μ 무μνκ³ μ ν λ μ¬μ©ν μ μμ΅λλ€.
mapNotNull ν¨μλ μ²μ λ΄μ μ κΈ°νμ§λ§, μ€μ λ‘λ κ΅μ₯ν μ μ©νκ² μ¬μ©νλ κ²½νμ΄ μμ΄μ λ§μ΄ νμ©λ κ² κ°μ΅λλ€.
flatMap
flatMapμ μμλ€μ λ€λ₯Έ 컬λ μ μΌλ‘ 맀νν λ€μ ννν(flatten)νλ ν¨μμ λλ€.
μ΄μ μ mapκ³Ό λΉκ΅ν΄λ³΄λ©΄ flatMapμ λ³ν κ³Όμ μ€κ°μ 리μ€νΈ λ±μ μν κ°λ₯ν 컬λ μ μ λ°νν΄μΌ ν©λλ€.
fold
foldλ 컬λ μ μ²λ¦¬ ν¨μ μ€ λ§λ₯μΌλ‘ μ¬μ©ν μ μλ λ©μλμ λλ€. μ½νλ¦° νμ€ λΌμ΄λΈλ¬λ¦¬μμ μ£Όμν μ°μ°λ€μ λλΆλΆ μ 곡νμ§λ§ λΉμ₯ μμ μ μ ν©ν λ©μλκ° μμ κ²½μ° μ¬μ©ν μ μμ΅λλ€.
foldλ λͺ μν μ°μ°μ μννμ¬ λͺ¨λ μμλ₯Ό νλμ λ³μλ‘ μ·¨ν©νλ 'λμ°κΈ°'λ‘ λΆλ¦¬λ λ©μλμ λλ€.
μ μ½λλ μ΄κΈ°κ° 0λΆν° 1μμ 4κΉμ§μ μλ₯Ό λνλ μ½λλ‘ λͺ¨λ μμ ν©μ κ³μ°ν©λλ€.
μ΄κΈ°κ° μ€μ μ λ°λΌ κ²°κ³Ό νμ λ λ³κ²½ν μ μμ΅λλ€.
μ½νλ¦° λΌμ΄λΈλ¬λ¦¬μλ μ΄λ―Έ μλ§μ 컬λ μ μ²λ¦¬λ₯Ό μν ν¨μλ€μ΄ μ 곡λκΈ° λλ¬Έμ, foldλ₯Ό μ¬μ©νμ§ μλλΌλ λ§μ κ²½μ° λμΌν μ°μ°μ μννλ ν¨μκ° μ‘΄μ¬νκΈ° λλ¬Έμ foldλ₯Ό μ¬μ©νμ§ μμλ λλ κ²½μ°κ° λ§μ΅λλ€.
λ§μ½ foldμ²λΌ μ΅μ’ κ²°κ³ΌλΏ μλλΌ μ€κ° μ°μ°κ°μ΄ νμν κ²½μ° runningFold λλ scan ν¨μλ₯Ό μ¬μ©ν μ μμ΅λλ€.
reduce
reduceλ foldμ λΉμ·νκ² λ³ν ν¨μλ₯Ό μ΄μ©νμ¬ λͺ¨λ μμλ₯Ό λμ°νμ§λ§ μ΄κΈ°κ°μ μ μνμ§ μλλ€λ μ°¨μ΄κ° μμ΅λλ€.
μ΄κΈ°κ°μ μ§μ νμ§ μκ³ μ²« λ²μ§Έ μμλ₯Ό μ΄κΈ°κ°μΌλ‘ μ¬μ©ν©λλ€.
μ ꡬν μ½λμ²λΌ 컬λ μ μ΄ λΉμ΄ μμΌλ©΄ μμΈλ₯Ό λμ§κΈ°μ, 컬λ μ μ μμκ° μ‘΄μ¬νλμ§ νμ€νμ§ μλ€λ©΄ reduceOrNull ν¨μλ₯Ό μ¬μ©νμ¬ μ»¬λ μ μ΄ λΉμ΄μμ κ²½μ° nullμ λ°ννλλ‘ ν μ μμ΅λλ€.
sum, sumOf
μ fold ν¨μλ₯Ό μ΄ν΄λ³Ό λ κ°λ΅ν λ΄€μλλ°μ, ν¨μ λ€μ΄λ°μμ μ μΆκ° κ°λ₯νλ― μ»¬λ μ μ λ΄κΈ΄ μ λͺ¨λλ₯Ό λνλ ν¨μμ λλ€.
λ§μ½ 컬λ μ μ λ΄κΈ΄ μμλ€μ νλ‘νΌν° μ€ νλμ ν©μ κ³μ°νκ³ μΆλ€λ©΄, sumOf ν¨μλ₯Ό μ¬μ©ν μ μμ΅λλ€.
λν Int, Long, Double λ± μ«μλ₯Ό νννλ λͺ¨λ νμ μμ μ¬μ©ν μ μμ΅λλ€.
컬λ μ μ μ‘΄μ¬νλ ν¨μλ€ μ€ μΌλΆμ λν΄ μ΄ν΄λ³΄μλλ°μ, μ΄ μΈμλ κ΅μ₯ν λ§μ ν¨μλ€μ΄ λ μ‘΄μ¬νκ³ ν¬μ€ν μ΄ κΈΈμ΄μ§ κ² κ°μμ λ€μ ν¬μ€ν μμ λ μ΄ν΄λ³΄κ² μ΅λλ€. πβοΈ
'Kotlin' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Kotlin for iterator (1) | 2025.01.17 |
---|---|
Kotlin - Scope functions (let, with, run, apply, also) (0) | 2024.12.15 |
[Kotlin] Slack APIλ‘ μ¬λ μ±λμ Message λ°μ‘νκΈ° (3) | 2022.03.27 |
[Kotlin] - Class(ν΄λμ€) (0) | 2021.10.17 |
λκΈ