gpt4 book ai didi

java - 迭代器性能契约(以及在非集合上的使用)

转载 作者:行者123 更新时间:2023-12-01 21:48:48 25 4
gpt4 key购买 nike

如果您所做的只是简单的一次迭代(即只有 hasNext()next() ,没有 remove() ),您是否能保证每次操作的线性时间性能和/或摊销恒定成本?

这是在 Iterator 中指定的吗?在任何地方签订契约(Contract)?

有数据结构/Java Collection哪些不能在线性时间内迭代?

java.util.Scanner implements Iterator<String> 。一个Scanner几乎不是一种数据结构(例如 remove() 完全没有意义)。这是否被认为是一个设计错误?

类似于PrimeGenerator implements Iterator<Integer>被认为是糟糕的设计,或者这正是Iterator是为了? (hasNext() 始终返回 true,next() 按需计算下一个数字,remove() 没有意义)。

同样,这对于java.util.Random implements Iterator<Double>有意义吗? ?

类型是否应该真正实现 Iterator如果它实际上只使用了三分之一的 API? (即没有 remove() ,总是 hasNext() )

最佳答案

没有这样的保证。正如您所指出的,任何人都可以将任何东西建模为迭代器。迭代器的各个生产者必须指定他们的个人性能。

关于java - 迭代器性能契约(以及在非集合上的使用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2501274/

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