본문 바로가기

Android

list 를 map 으로 변경해주는 associateBy

val initialCustomers = arrayOf(Customer(1, "Kotlin"),
        Customer(2, "Spring"),
        Customer(3, "Microservice"))

이러한 어레이가 존재 시 이를 map 으로 변경하려면 associateBy 를 이용해 변경할 수 있다. 기준값은 associateBy 의 인자로 지정 한다.

val customers = ConcurrentHashMap<Int, Customer>(initialCustomers.associateBy(Customer::id))

결론적으로 이 값은 아래와 같이 변환 된다.
{
"1" : {"id": 1, "name":"Kotlin"},
"2" : {"id": 2, "name":"Spring"},
"3" : {"id": 2, "name":"Microservice" }
}