Kotlin Listの中の特定の値を持ったオブジェクトをfilterする


多分、みんなListの中にオブジェクトをぶち込んで利用することが多いと思う。

Listの中の特定のオブジェクトをいくつかfilterしたい場合とかどうやってるのかなあ...と思った。

こんな感じで書いたんだけど果たして... この場合はmuteListの中に含まれるオブジェクトを除外する。

fullList.filter{ object ->
    var ret = true
    muteList.forEach{ muteObject ->
        if( muteObject.name == object.name ){
            ret = false
            return@forEach
        }
    }
    ret
}

anyを使えばもう少しすっきり書ける。

fullList.filter{ object ->
    !muteList.any{ muteObject ->
        muteObject.name == object.name
    }
}