AssociateBy - Kotlin에서 지도에 나열

4604 단어 androidkotlin
저는 Amit Shekhar , 개발자들이 고임금 기술직을 구하도록 돕는 멘토입니다.

이 블로그에서는 목록을 맵으로 변환하는 Kotlin 컬렉션 함수associateBy에 대해 알아봅니다.

이 문서는 원래 amitshekhar.me에 게시되었습니다.

Kotlin에는 유용한 수집 함수가 많이 있습니다. 그것들에 대해 알고 요구 사항에 따라 사용하는 것이 좋습니다. 이러한 수집 기능 중 하나는 associateBy 입니다.
associateBy 목록을 지도로 변환해 보겠습니다.

예제를 통해 알아봅시다.

아래와 같은 data 클래스Contact를 고려하십시오.

data class Contact(val name: String, val phoneNumber: String)


그리고 Contact 목록:

val contacts = listOf(
    Contact("Amit", "+9199XXX11111"),
    Contact("Messi", "+9199XXX22222"),
    Contact("Ronaldo", "+9199XXX33333"))


이제 associateBy의 이 목록에서 Contact 함수를 사용하여 Map를 얻습니다.
  • key as name
  • value as phoneNumber

  • val nameToNumberMap = contacts.associateBy( {it.name}, {it.phoneNumber})
    println(nameToNumberMap)
    


    그러면 다음이 인쇄됩니다.

    {Amit=+9199XXX11111,
    Messi=+9199XXX22222,
    Ronaldo=+9199XXX33333}
    


    소스 코드를 살펴보면 다음 정의를 찾을 수 있습니다.

    inline fun <T, K, V> Iterable<T>.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map<K, V>
    


    메모:
  • Map에서 제공하고 지정된 컬렉션의 요소에 적용된 valueTransform 함수에서 인덱싱된 값을 포함하는 keySelector를 반환합니다.
  • 두 요소가 keySelector에서 반환된 동일한 키를 갖는 경우 마지막 요소가 맵에 추가됩니다.
  • 항목의 원래 순서를 유지합니다.

  • 지금은 그게 다입니다.

    감사

    Amit Shekhar

    다음에서 나와 연결할 수 있습니다.


  • GitHub
  • Facebook
  • 좋은 웹페이지 즐겨찾기