java的iterator问题

Iterator it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}那它的第一个元素不是没有打印吗 它打印的是下一个元素啊 求大神解释

迭代器iterator的指针最初是指向第一个元素的前面,不指向任何元素,当调用它的next方法的时候就会指向下一个元素同时返回该元素,第一次调用也就会指向第一个元素,一直到指向最后一个元素的时候,调用hasNext方法就会返回false
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-10
不是
it.hasNext()返回的是有没有下一个元素。
it.next()才是指向下一条元素。
Iterator it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
打印的是所有的元素
第2个回答  2012-08-10
Iterator it=list.iterator(); //获取list集合的迭代对象
while(it.hasNext()){ //it.hasNext() 返回boolean 判断时候有下一个值
System.out.println(it.next()); //it.next() 将it的游标往下一位取值
}

关键就在于 it产生时,游标的位置在list集合里的第一个对象之前,所以取第一个对象要先it.next()。
第3个回答  2012-08-10
这个跟C 中带表头的链表和不带表头的链表是一个意思

Java面试:Iterator 怎么使用?有什么特点?
在Java面试中,关于Iterator的使用和特性,我们可以从以下几个方面理解:首先,Iterator提供了一种特殊的访问方式,它允许在遍历集合时进行动态操作,如删除元素。这与传统的for循环或foreach循环不同,后者在遍历过程中无法进行删除操作。其次,Iterator的通用性很强,适用于各种类型的集合。无论你的集合是...

java中iterator是什么意思?
iterator是什么意思?在Java中,iterator通常用于遍历集合中的元素。Iterator是一个接口,它定义了在集合中遍历元素的方法。对于某些集合,例如List,我们可以使用for循环来遍历,但对于其他集合,例如Set,我们必须使用Iterator,因为Set没有索引。Iterator是Java中可迭代元素的标准方式。iterator的使用方法 Iterato...

java中iterator是什么意思
1. 在Java中,Iterator是用于遍历集合元素的接口。2. Iterator定义了在集合中遍历元素的方法,包括检测下一个元素是否存在(hasNext)、获取下一个元素(next)以及删除元素(remove)。3. 对于无法使用索引的集合,如Set,Iterator是遍历的唯一方法。4. 使用Iterator可以避免在遍历时修改集合引发ConcurrentMod...

iterator用法
hasNext:判断是否存在下一个元素。next:返回迭代器指向的下一个元素,并将指针移到下一个位置。remove:移除迭代器最后返回的元素。这个方法需谨慎使用,因为它会直接改变集合的状态。3. 使用Iterator遍历集合的示例:假设有一个名为“myList”的列表,我们可以使用Iterator来遍历它:java List...

JAVA iterator 迭代器模式的next() 的问题 求高手回答 谢谢! 真诚求...
E next() 返回迭代的下一个元素。每一种集合的实现类都是各自的迭代器实现,不用关心具体迭代器的类型,只将他们当作迭代器用于遍历集合元素即可。应当遵循“问-取-删”模式,适用于while循环。Iterator<String>it = c1.iterator(); --- 问的过程,询问c1集合中是否还有元素 while( it.hasNext()...

java中为什么要使用Iterator?Iterator的用途是什么?
Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。 \\x0d\\x0a\\x0d\\x0a 例如,如果没有使用Iterator,遍历一个数组的方法是使用索引: \\x0d\\x0a\\x0d\\x0afor(int i=0; i<array.size(); i++) { .....

...如果还想迭代,只能在调用一遍iterator返回一个新的吗?
答: 是的,需要重新调用.iterator()方法,放回1个新的迭代器.原因: 1: 因为迭代器使用完了,里面也就没有元素了,2: 并且java语言没有提供重置的方法.代码如下 import java.util.ArrayList;import java.util.Iterator;public class ListDemo {public static void main(String[] args) {ArrayList...

JAVA中Iterator的具体作用?
Iterator接口中一共有3中方法。API中的方法摘要是这样的 boolean hasNext() 如果仍有元素可以迭代,则返回 true。E next() 返回迭代的下一个元素。void remove() 从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。举个例子给你看看 ArrayList a = new ArrayList();\/\/创建...

JAVA中Iterator方法中有两种取值方法,例如Iterator<Student> it = li...
Iterator由集合类通过工厂方法生成,方法中记录的存取方式有两种,一种是顺序存储,另一个是链接存储。如果你用for(int i)【这里比如for中的变量是i】然后get,i的值越就越慢(因为对于越往后面的值他都要统统找一边,知道找到那个下标为i的),但是用next就不一样,不后你的值有多大多深,他的...

java iterator循环遍历集合(比如HashSet)的原理
Iterator<String> it = set.iterator() 这时得到一个迭代器,它的指针位于第一个元素之前。然后我们不停地 hasNext() 再 next 得到值,当hasNext 为 false 时当然就不能去 next 了。这背后的位置索引是在迭代器内部记录着的,我们不能直接改它的值,只能 next 去下一个。不过像 ListIterator 则...

相似回答