320x100
AssociateBy
collection 요소에 파라미터 함수에서 반환된 값을 키 값, 요소를 value로 하는 map을 반환한다.
data class Member(
val no: Int,
val name: String
)
fun main() {
val members = listOf(
Member(no=10, name="A"),
Member(no=20, name="B"),
Member(no=30, name="C"),
Member(no=40, name="D"),
Member(no=50, name="E"),
)
val associateMembers = members.associateBy{it.no}
println("""
${associateMembers::class.simpleName}
keys : ${associateMembers.keys}
values : ${associateMembers.values}
${associateMembers}
""".trimIndent())
}
LinkedHashMap
keys : [10, 20, 30, 40, 50]
values : [Member(no=10, name=A), Member(no=20, name=B), Member(no=30, name=C), Member(no=40, name=D), Member(no=50, name=E)]
{10=Member(no=10, name=A), 20=Member(no=20, name=B), 30=Member(no=30, name=C), 40=Member(no=40, name=D), 50=Member(no=50, name=E)}
AssociateWith
collection 요소가 key이고 파라미터 함수에서 반환된 값을 value로 하는 Map을 반환한다.
data class Member(
val no: Int,
val name: String
)
fun main() {
// associateBy
val members = listOf(
Member(no=10, name="A"),
Member(no=20, name="B"),
Member(no=30, name="C"),
Member(no=40, name="D"),
Member(no=50, name="E"),
)
val associateMembers = members.associateWith{it.no}
println("""
${associateMembers::class.simpleName}
keys : ${associateMembers.keys}
values : ${associateMembers.values}
${associateMembers}
""".trimIndent())
}
LinkedHashMap
keys : [Member(no=10, name=A), Member(no=20, name=B), Member(no=30, name=C), Member(no=40, name=D), Member(no=50, name=E)]
values : [10, 20, 30, 40, 50]
{Member(no=10, name=A)=10, Member(no=20, name=B)=20, Member(no=30, name=C)=30, Member(no=40, name=D)=40, Member(no=50, name=E)=50}
Associate
collection 요소에 파라미터 함수에서 반환된 key-value pair 값으로 Map을 만들어 반환한다.
data class Member(
val no: Int,
val name: String
)
fun main() {
val members = listOf(
Member(no=10, name="A"),
Member(no=20, name="B"),
Member(no=30, name="C"),
Member(no=40, name="D"),
Member(no=50, name="E"),
)
val associateMembers = members.associate{it.no to it.name}
println("""
${associateMembers::class.simpleName}
keys : ${associateMembers.keys}
values : ${associateMembers.values}
${associateMembers}
""".trimIndent())
}
LinkedHashMap
keys : [10, 20, 30, 40, 50]
values : [A, B, C, D, E]
{10=A, 20=B, 30=C, 40=D, 50=E}
320x100
'Back-End (web)' 카테고리의 다른 글
[Kotlin] Collection - Fold, Reduce (0) | 2022.01.16 |
---|---|
PyCharm 입출력 파일 설정 (0) | 2022.01.08 |
[Kotlin] Collection - all, any, count, find (0) | 2021.12.29 |
[Kotlin] Sealed Class (0) | 2021.12.28 |
[Spring] 배치 실행 시 'BATCH_JOB_INSTANCE.PRIMARY' 중복 에러 (1) | 2021.11.19 |
댓글