迭代器遍历集合 难道不会跳过集合中第一个元素吗? 50
List<String>list=newArrayList<String>();list.add("A");list.add("B");list.add("C");Ite...
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
Iterator it = list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
首次循环时:System.out.println(it.next()); 这句中 it.next() 是迭代器的下一个元素不就是第二个元素吗? 展开
list.add("A");
list.add("B");
list.add("C");
Iterator it = list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
首次循环时:System.out.println(it.next()); 这句中 it.next() 是迭代器的下一个元素不就是第二个元素吗? 展开
1个回答
展开全部
不是。
这句话的意思是 当(下一个迭代器返回真时) 则……
和获取容器里的元素毫无关系。
next()的实现是这样:先看看当前迭代器指向位置的下一个位置还存不存在,不存在就返回假,存在就返回真。
应当说这个list的设计很不好,因为方法应当是施加于容器上的,迭代器仅用来指示位置,而不是迭代器上还能用方法。正确的list设计应该是这样的
Iterator it = list.begin();
for(;it!=list.end();++it)
{
System.out.println(*it);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询