kotlin mutableMapに条件を指定してkeyと値を取得する

kotlin mutableMapに条件を指定してkeyと値を取得する

kotlinで、mutableMapに条件を指定してkeyと値を取得する手順を記述してます。「filter」に条件を指定することで可能です。「filterTo」を使用すると他のMapに結果を追加することもできます。

環境

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

手順

mutableMapに条件を指定してkeyと値を取得するには、「filter」で可能です。

map名.filter({ 条件 })

実際に、取得してみます。

fun main() {

    val m = mutableMapOf('a' to 1, 'b' to 2, 'c' to 3, 'd' to 4, 'e' to 5)

    println( m.filter { it.key == 'a' }  ) // {a=1}
    println( m.filter { it.value > 2 && it.value < 5 }  ) // {c=3, d=4}

}

取得されていることが確認できます。

条件に一致するものがなければ空が返ります。

fun main() {

    val m = mutableMapOf('a' to 1, 'b' to 2, 'c' to 3, 'd' to 4, 'e' to 5)

    println( m.filter { it.key == 'f' }  ) // {}

}

filterTo

filterToを使用すると、別のmapに結果を追加することが可能です。

fun main() {

    val m = mutableMapOf('a' to 1, 'b' to 2, 'c' to 3, 'd' to 4, 'e' to 5)
    val m2 = mutableMapOf('f' to 6)

    m.filterTo(m2) { it.key == 'a' }
    
    println( m2 ) // {f=6, a=1}

}