您的位置:首页 > 其它

iterator的理解与用法

2013-08-29 14:48 423 查看
在Iterator类中,我们经常用到两个方法: hasNext(), next(),
具体含义: next(), 是返回当前元素, 并指向下一个元素。
hasNext(), 则是判断当前元素是否存在,并指向下一个元素(即所谓的索引)
原理模拟:
public boolean hasNext() {return cursor != size();}public Object next() {checkForComodification();try {Object next = get(cursor);lastRet = cursor++;return next;} catch(IndexOutOfBoundsException e) {checkForComodification();throw new NoSuchElementException();}}由此可看出,两个方法的作用与区别。

用法举例:
Map map=new HashMap();
map.put('1','Tom');
map.put('2','Jim');
Set keySet=map.keySet();
Iterator iterator=keySet.iterator();
while(iterator.hasNext())
{
String key=(String)iterator.next;
}

iterator与for、list区别,具体如下:

需要取list里面每个元素的时候,
Iterator it = list.iterator();
while (it.hasNext()) {
Id= (String) it.next();
}

for(int i=0;i<list.size();i++){
Id=(String)list.get(i);

} 两种写法都可以,但是尽量用前一种,因为如果以后你的代码改了,list不在是list接口了,而是set接口(没有get(i)方法),这时你的代码改动就大了,for里面全部要重写。当然,jdk 1.5以后,也可以
List <String> list = new ArrayList <String>();
for (String s:list) {
System.out.println(s);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iterator