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

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

多分、みんな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
    }
}