获取迭代器的计数/长度/大小的最佳方法是什么?

是否有一种“计算”快速的方法来获取迭代器的数量?

int i = 0;

for ( ; some_iterator.hasNext() ; ++i ) some_iterator.next();

…似乎浪费了CPU周期。

回答:

如果您只有迭代器,那么这就是您要做的-它不 知道

还有多少项目要迭代,因此您无法查询该结果。有一些实用程序方法似乎可以做到这一点(例如Iterators.size()Guava中的方法),但是在它们的下面仅执行大致相同的操作。

但是,许多迭代器来自集合,您通常可以查询集合的大小。如果它是用户制作的类,那么您要为其提供迭代器,则可以在该类上提供size()方法。

简而言之,在 只有 迭代器的情况下,没有更好的方法了,但是比起没有访问权的更多途径,您可以直接从底层集合或对象中获取大小。

以上是 获取迭代器的计数/长度/大小的最佳方法是什么? 的全部内容, 来源链接: utcz.com/qa/400808.html

回到顶部