kotlin filter()で配列の差分を取得するサンプル

環境
Windows11 pro 64bit
java 19.0.1
kotlin 1.7.20-release-201

構文

val newArray = 配列1 + 配列2
val result = newArray.filter { item ->
newArray.count { it == item } == xxx
}

filter()を使って2つの配列(array)の差分を取得するには、count()を使います。
count()のクロージャーで、引数と配列の要素が等しい時にtrueとなる条件式を返します。

使用例

fun main() {
   
    val nums1 = arrayOf(2, 3, 6, 7, 5)
    val nums2 = arrayOf(3, 4, 5, 6)
    
    val array = nums1 + nums2
    val result = array.filter { item ->
        array.count { it == item } == 1 
    }
    
    println(result)
}

実行結果
[2, 7, 4]

Kotlin

Posted by arkgame