코틀린 map, flatmap의 차이점을 알아보자!
inline fun <T, R> Iterable<T>.map(
transform: (T) -> R
): List<R>
오리지널 컬렉션의 각 요소에 지정된 변환 함수를 적용한 결과를 각각 요소로 한 리스트를 반환
inline fun <T, R> Iterable<T>.flatMap(
transform: (T) -> Iterable<R>
): List<R>
오리지널 컬렉션의 각 요소에 대해 호출되는 변환 함수의 결과에서 생성된 모든 요소의 단일 리스트를 반환
val list = listOf("123", "45")
println(list.flatMap { it.toList() }) // [1, 2, 3, 4, 5]
목적: vehicle list의 manufacturers만 필요
val vehicles = listOf(cars, bikes)
val manufacturerList = vehicles.flatMap {
it
}.map {
it.manufacturer
}
vehicles의 item을 flat하게 하고 map을 이용해 manufactures만 뽑아냄
https://wooooooak.github.io/kotlin/2019/05/04/Map-vs-flatMap/
https://blog.mindorks.com/flatmap-vs-map-in-kotlin