Kotlin - List를 Map으로 변환

List를 Map으로 변환하는 방법을 소개합니다.

1. List.map{ }.toMap()

아래 코드는 Person 클래스의 리스트를 Map으로 변환하는 예제입니다.

List.map { key to age }.toMap()으로, Map의 key와 value를 설정할 수 있습니다.

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

fun main(args: Array<String>){

    val myList = listOf(Person("a", 10),
                        Person("b", 12),
                        Person("c", 15))

    val myMap = myList.map { it.name to it.age }.toMap()
    println(myMap)
}

Output:

{a=10, b=12, c=15}

2. List.map{ }.toMap()

다음은 List<String>을 Map으로 변환하는 예제입니다. key와 value가 같도록 설정합니다.

fun main(args: Array<String>){

    val myList: List<String> = listOf("a", "b", "c", "d", "e")

    val myMap = myList.map { it to it }.toMap()

    println(myMap)
}

Output:

{a=a, b=b, c=c, d=d, e=e}

3. List.associateBy()

List.associateBy()으로 다음과 같이 List를 Map으로 변환할 수 있습니다.

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

fun main(args: Array<String>){

    val myList = listOf(Person("a", 10),
                        Person("b", 12),
                        Person("c", 15))

    val myMap = myList.associateBy({it.name}, {it.age})
    println(myMap)
}

Output:

{a=10, b=12, c=15}
Loading script...
codechachaCopyright ©2019 codechacha