获取迭代器的计数/长度/大小的最佳方法是什么?
是否有一种“计算”快速的方法来获取迭代器的数量?
int i = 0;for ( ; some_iterator.hasNext() ; ++i ) some_iterator.next();
…似乎浪费了CPU周期。
回答:
如果您只有迭代器,那么这就是您要做的-它不 知道
还有多少项目要迭代,因此您无法查询该结果。有一些实用程序方法似乎可以做到这一点(例如Iterators.size()
Guava中的方法),但是在它们的下面仅执行大致相同的操作。
但是,许多迭代器来自集合,您通常可以查询集合的大小。如果它是用户制作的类,那么您要为其提供迭代器,则可以在该类上提供size()方法。
简而言之,在 只有 迭代器的情况下,没有更好的方法了,但是比起没有访问权的更多途径,您可以直接从底层集合或对象中获取大小。
以上是 获取迭代器的计数/长度/大小的最佳方法是什么? 的全部内容, 来源链接: utcz.com/qa/400808.html