기록
Kotlin Map, Filter 예제 본문
반응형
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인 사람들만 출력 (같은 리스트 타입에 조건 걸기)
반응형
'[Study] > Kotlin' 카테고리의 다른 글
[Kotlin] 할인 행사 (0) | 2023.05.05 |
---|---|
Junit assertEquals 메소드 톺아보기 (0) | 2023.04.21 |
안드로이드 코딩하며 익히는 코틀린 문법 (생성자 문법, 제너릭) (0) | 2022.06.15 |
[코틀린/Kotlin] 코루틴을 통한 비동기 처리 (0) | 2022.05.11 |
[코틀린/Kotlin] 비트연산 (0) | 2022.05.11 |