迭代器遍历集合 难道不会跳过集合中第一个元素吗? 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() 是迭代器的下一个元素不就是第二个元素吗?
展开
 我来答
百度网友c274085a8
2016-12-04 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:90
采纳率:100%
帮助的人:83.6万
展开全部

不是。

这句话的意思是 当(下一个迭代器返回真时) 则……

和获取容器里的元素毫无关系。

next()的实现是这样:先看看当前迭代器指向位置的下一个位置还存不存在,不存在就返回假,存在就返回真。


应当说这个list的设计很不好,因为方法应当是施加于容器上的,迭代器仅用来指示位置,而不是迭代器上还能用方法。正确的list设计应该是这样的

        Iterator it = list.begin();  
        for(;it!=list.end();++it)
        {  
            System.out.println(*it);  
        }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式