当前位置: 首页 > 面试题库 >

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

谢善
2023-03-14
问题内容

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

int i = 0;
for ( ; some_iterator.hasNext() ; ++i ) some_iterator.next();

…似乎浪费了CPU周期。


问题答案:

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

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

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



 类似资料:
  • 本文向大家介绍JS获取数组最大值、最小值及长度的方法,包括了JS获取数组最大值、最小值及长度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS获取数组最大值、最小值及长度的方法。分享给大家供大家参考,具体如下: 希望本文所述对大家JavaScript程序设计有所帮助。

  • 我有一个背景工作,需要合并很多项目在一起。我想将其拆分为多个“子作业”,每个子作业合并数据的一个子集,然后最后一个过程将所有“子作业”的输出合并在一起。 一种简单的方法是将数据分成x元素组。问题是最后一个组可能有1个元素的剩余部分,因此它将是一个“noop”。我想找到最佳的“x”,这样组就大致相等,并且每个组中有最小和最大数量的元素(例如,不少于10个元素,不超过20个) 在Ruby中有什么好的算

  • 问题内容: 简单的一个:如何在PHP中找到浮点数的小数部分?例如,如果我的值为1.25,我想返回0.25。 问题答案:

  • 问题内容: 我试图通过C#中的代码找到最佳的(快速与最简单)访问SQL Server代码的方法。 当我从书本上学习时,我遇到了很多建议,通常都建议我通过拖放来完成。但是,由于我想在代码中做到这一点,所以第一种方法是按列号获取数据,但是SQL Query中的任何重新排序(如添加/删除列)都让我难以解决。 例如(别笑,有些代码大约有2年历史了),我什至编写了特殊的函数来传递sqlQueryResult

  • 问题内容: 在处理大型和/或许多Javascript和CSS文件时,减小文件大小的最佳方法是什么? 问题答案: 除了使用服务器端压缩外,使用智能编码是保持较低带宽成本的最佳方法。您始终可以使用Dean Edward的Javascript Packer之类的工具,但是对于CSS,请花一些时间学习CSS Shorthand。例如使用: …代替: 另外,请使用CSS的级联性质。例如,如果您知道您的站点将

  • 问题内容: 我正在使用子进程模块中的Popen函数来执行命令行工具: 我正在使用的工具将获取一个文件列表,然后处理该文件。在某些情况下,此文件列表可能会很长。有没有一种方法可以找到args参数可以达到的最大长度?将大量文件传递给该工具后,出现以下错误: 有找到这种最大长度的一般方法吗?我在msdn上找到了以下文章:命令提示符(Cmd。exe)命令行字符串限制,但我不想对值进行硬编码。我宁愿在运行时