将一个集合分解为更小的集合

Gil*_*oot 0 java android set kotlin

我有一组超过 40,000 个项目,我想将其分解为多组,每组 5,000 个项目,因为 Room 不允许我同时使用一组 5,041 个项目作为参数。

我该怎么做?

fun breakDownSet(set: Set<String>) : List<Set<String>> {
    val sets = ArrayList<Set<String>>()
    // TODO

    return sets
}

Run Code Online (Sandbox Code Playgroud)

Gio*_*oli 5

您可以使用chunked

fun breakDownSet(set: Set<String>): List<Set<String>> = set.chunked(5000) { it.toSet() }
Run Code Online (Sandbox Code Playgroud)

这会将您的集合分成多个集合,每个集合不包含超过 5000 个项目。