kotlin mutableMap同士を比較して同じであるかを判定する

kotlin mutableMap同士を比較して同じであるかを判定する

kotlinで、mutableMap同士を比較して同じであるかを判定する手順を記述してます。「equals」を使用します。「mutableMap」のkeyとvalueの並び順は、関係なく判定されます。

環境

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

手順

mutableMap同士を比較して同じであるかを判定するには、「equals」で可能です。

map名.equals(map名)

実際に、判定してみます。

fun main() {

    val m = mutableMapOf('a' to 1, 'b' to 2, 'c' to 3)
    val m2 = mutableMapOf('a' to 1, 'b' to 2, 'c' to 3)
    val m3 = mutableMapOf('b' to 2, 'c' to 3 ,'a' to 1)
    val m4 = mutableMapOf('b' to 3, 'c' to 3 ,'a' to 1)

    println( m.equals(m2) ) // true
    println( m.equals(m3) ) // true
    println( m.equals(m4) ) // false

}

判定されていることが確認できます。並びの順番は、関係なく判定されます。

「=」演算子

「=」演算子を使用した場合の結果は、「==」の場合は結果は同じですが「===」の場合は全て「false」となります。

fun main() {

    val m = mutableMapOf('a' to 1, 'b' to 2, 'c' to 3)
    val m2 = mutableMapOf('a' to 1, 'b' to 2, 'c' to 3)
    val m3 = mutableMapOf('b' to 2, 'c' to 3 ,'a' to 1)
    val m4 = mutableMapOf('b' to 3, 'c' to 3 ,'a' to 1)

    println( m == m2 ) // true
    println( m == m3 ) // true
    println( m == m4 ) // false

    println( m === m2 ) // false
    println( m === m3 ) // false
    println( m === m4 )  // false

}