gpt4 book ai didi

Kotlin:自定义顺序的迭代器

转载 作者:行者123 更新时间:2023-12-02 12:15:53 24 4
gpt4 key购买 nike

我需要以自定义顺序遍历集合列表,即具有升序基数。在 Kotlin 中可以创建具有自定义顺序的迭代器吗?

最佳答案

当然可以。在 Kotlin 中创建自定义迭代器是可能的,因为... Java。您可以以此代码为基础:

class ListOfSets<E, S : Set<E>>(val from: List<S>) : Iterable<S> {
override fun iterator(): Iterator<S> {
return object : Iterator<S> {
val state = from.sortedBy { it.size }
var i = 0;

override fun hasNext(): Boolean = i < state.size

override fun next(): S = state[i++]
}
}
}

fun main() {
val sets = ListOfSets(
listOf(
setOf(1, 2, 3),
emptySet(),
setOf(1, 2, 3, 4),
setOf(1, 2),
setOf(1, 2, 1),
setOf(2, 2, 2, 2, 2)
)
)

for (set in sets) {
println(set)
}
}

它打印:

[]
[2]
[1, 2]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]

在这里问自己一个更好的问题是:为什么需要迭代器而不是直接在需要的地方使用 sortedBy 对集合进行排序?

关于Kotlin:自定义顺序的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62573762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com