정답보다 해답을

[Kotlin] map와 forEach의 차이점 본문

Kotlin

[Kotlin] map와 forEach의 차이점

스탑스톤 2024. 4. 13. 15:05

코틀린 함수 중 forEach와 map에 대해 알아봅시다.

forEach과 map 함수는 모두 컬렉션의 각 요소에 대해 동작을 수행하지만, 그 동작의 결과에 차이가 있습니다.

 

Map

fun main() {
	val people = listOf(Person("Alice", 29), Person("Bob", 31))
    println(people.map {it.name})

}

data class Person(val name: String, val age: Int)

위와 같은 코드가 있을 때 어떤 결과가 나올까요??

예상했듯, Person 객체 안에 name을 잘 출력하고 있네요!

 

 

forEach

fun main() {
	val people = listOf(Person("Alice", 29), Person("Bob", 31))
    println(people.forEach {it.name})

}

data class Person(val name: String, val age: Int)

forEach의 경우 Unit을 반환하며, 아무런 반환값이 없는 것을 확안할 수 있습니다.

왜 이럴까요?

 


map 함수:

  • map 함수는 주어진 람다를 컬렉션의 각 요소에 적용하고, 그 결과를 새로운 컬렉션에 담아 반환합니다.
  • 따라서 map 함수의 결과는 새로운 리스트(또는 다른 타입의 컬렉션)입니다.

 

forEach 함수:

  • forEach 함수는 주어진 람다를 컬렉션의 각 요소에 적용합니다.
  • 그러나 forEach 함수는 반환값이 없으며, 단순히 각 요소를 반복하고 어떠한 결과도 반환하지 않습니다.
  • 따라서 forEach 함수는 각 요소를 순회하면서 작업을 수행할 때 사용됩니다.