kotlin Listの要素をvalueにしてkeyを式から作成したMapを作成する

kotlin Listの要素をvalueにしてkeyを式から作成したMapを作成する

kotlinで、Listの要素をvalueにしてkeyを式から作成したMapを作成する手順を記述してます。「associateBy」を使用します。

環境

  • OS windows11 home
  • java 19.0.1
  • kotlin 1.7.20-release-201

手順

kotlin、Listの要素をkeyにしてMapを作成するには、「associateBy」で可能です。

List名.associateBy({ keyになる値 })

実際に、使用してみます。

fun main() {

    val list = listOf( "aaa", "bbb", "ccc", "ddd", "eee" )

    println(list.associateBy { it })
    // {aaa=aaa, bbb=bbb, ccc=ccc, ddd=ddd, eee=eee}

    println(list.associateBy { it + "AAA" })
    // {aaaAAA=aaa, bbbAAA=bbb, cccAAA=ccc, dddAAA=ddd, eeeAAA=eee}

}

Mapが作成されていることが確認できます。

Listの要素が重複していると、除かれます。

fun main() {

    val list = listOf( 1, 3, 3, 5, 5 )

    println(list.associate { it to "aaa" })
    // {1=aaa, 3=aaa, 5=aaa}

    println(list.associate { it to it * 2 })
    // {1=2, 3=6, 5=10}

}

mutableList

「mutableList」にも使用可能です。

fun main() {

    val list = mutableListOf( "aaa", "ccc", "ccc", "ddd", "ddd" )

    println(list.associateBy { it })
    // {aaa=aaa, ccc=ccc, ddd=ddd}

    println(list.associateBy { it + "AAA" })
    // {aaaAAA=aaa, cccAAA=ccc, dddAAA=ddd}

}