[Study]/Kotlin
Kotlin Map, Filter 예제
Dannnnnn
2022. 6. 22. 01:36
반응형
import kotlinx.coroutines.launch
import kotlinx.coroutines.*
fun main() {
val api = NamesApi()
val namesJson = api.getNames();
println("----- ORIGINAL JSON NAMES:")
println(api.getNames());
val names = nameFromJson(namesJson);
println();
println("----- CONVERTED NAMES:")
println(names);
}
fun nameFromJson(namesJson: List<NameJson>): List<Name> {
return namesJson.filter { nameJson ->
nameJson.lastName[0] == 'K'
}.map { nameJson ->
if(nameJson.isReversed)
Name(
fullName = nameJson.lastName + " " + nameJson.firstName
)
else
Name(
fullName = nameJson.firstName + " " + nameJson.lastName
)
}
}
class Name(
val fullName: String
) {
override fun toString(): String = "\n Full Name: '$fullName'\n"
}
class NamesApi {
fun getNames() : List<NameJson> {
return listOf(
NameJson("Sora", "Kim", true),
NameJson("Hussien", "Elmi", false),
NameJson("Bruce", "Wayne", false),
NameJson("Clark", "Kent", false),
)
}
}
class NameJson(
val firstName: String,
val lastName: String,
val isReversed: Boolean
) {
override fun toString(): String = "\nFirst Name: '$firstName' Last Name: '$lastName' rev:$isReversed"
}
1. map에 조건 걸어 필요시 성 위치 바꾸기 (다른 타입 리스트로 변환할 때 조건 걸기 가능)
2. filter에 조건 걸어 성이 K인 사람들만 출력 (같은 리스트 타입에 조건 걸기)
반응형