跌带

来源:互联网 发布:闻道网络 编辑:程序博客网 时间:2024/04/28 21:13

Iterator接口
Iterator接口有下面3个基本方法:
Object next():返回迭代器刚越过的元素的引用
boolean hasNext():判断容器内是否还有可供访问的元素
void remove():删除迭代器刚越过的元素
注意:Java中的迭代器与STL中的迭代器在概念上有很重要的区别。在STL中,迭代器类似于数组的索引,使用这种迭代器可以查看存放在该位置上的元素(类似于通过数组索引i来访问c[i]一样)。Java中的迭代器并不这样运行。查看与位置的变化紧密的结合在一起。每次通过next()访问一个元素的同时,迭代器的位置会自动向前走一步。
这个问题可以这样理解:Java中的迭代器指向的位置并不是元素,而是元素之间。这样,每次调用next()时,迭代器便越过下一个元素,同时返回它刚越过的那个元素的引用。
根据上面的说明,很容易得出下面的代码是错误的:
it.remove();
it.remove();
而下面的代码是正确的:
it.remove();
it.next();
it.remove();
迭代器的典型应用
Iterator it=c.iterator();
while(it.hasNext())
{
 Object obj=it.next();
 //do something with obj
}

原创粉丝点击