我对 Java 中的迭代器行为有疑问。
我有这样的电话:
myIterable.iterator().hasNext()
如果此调用返回 true,我可以确定该集合至少有两个元素吗?从 Java API 规范中,我只能发现 true 意味着还有一个元素可以通过next()
. 但是如果指针在最开始会发生什么(意味着是否hasNext()
可以单独识别第一个元素)
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Iterator.html
如果迭代有更多元素,则为 true。但是更多元素也可能意味着第一个元素?
[编辑]
我怎么知道迭代器是否有两个元素要遍历?当然,我可以迭代和计数,但在我的情况下,我不能返回或迭代两次或克隆迭代器,这是一个 Hadoop 迭代器。