Kotlin - 检查集合是否完全包含另一个集合

ser*_*0ne 6 kotlin

我希望能够检查集合是否a包含的所有元素,但基于相等性的检查是不够的;例如:b

data class Person(val name: String, val age: Int)

val a = listOf(Person("Alice", 10), Person("Bob", 13))
val b = listOf(Person("Alice", 10), Person("Alice", 10))

fun main() {
   println(a.containsAll(b))
}
Run Code Online (Sandbox Code Playgroud)

真的

虽然这在技术上是可行的 true,但这不是我想要的结果,因为a只包含一个Person("Alice", 10),而b包含其中两个。

上面的例子应该失败,而下面的例子应该通过。

data class Person(val name: String, val age: Int)

val a = listOf(Person("Alice", 10), Person("Alice", 10), Person("Bob", 13))
val b = listOf(Person("Alice", 10), Person("Alice", 10))

fun main() {
   println(a.containsAllExact(b))
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?