kotlin 如何使用for循环或任何其他循环来循环列表,同时获取指定数量的项

nue99wik  于 2022-12-13  发布在  Kotlin
关注(0)|答案(1)|浏览(142)

我有一个汽车制造商的列表,而列表是如此之大,我想把它存储在房间数据库在android。应用程序可能会崩溃,而执行此操作。我想循环通过列表,并采取一些项目块,并存储到数据库。例如,每次循环,我采取20项,直到列表是空的。我如何实现这在Kotlin或任何其他建议,可以有效地工作。

v6ylcynt

v6ylcynt1#

你不必说你是否关心你想要以什么顺序删除列表项。如果你不关心,那么下面的代码展示了你如何实现它。注意,原始列表必须是 * 可变的 *,remove()操作才能起作用

val CHUNK_SIZE = 20
val vehicles = (0..177).map { "Car ${it}" }.toMutableList()

val carListIterator = vehicles.iterator()
val removalChunk = mutableListOf<String>()
while(carListIterator.hasNext()) {
    removalChunk.add(carListIterator.next())
    carListIterator.remove() // this removes the element that was just returned
    if(removalChunk.size >= CHUNK_SIZE || !carListIterator.hasNext()) {
        //store chunk elsewhere
        println("Storing: ${removalChunk.joinToString()}")
        removalChunk.clear()
    }
}

相关问题