黑马程序员技术交流社区
标题:
关于Iterator 问题
[打印本页]
作者:
金兴
时间:
2012-4-8 16:18
标题:
关于Iterator 问题
1:
Iterator it = a.iterator();
while(it.hasNext())
{
it.next();
}
2::
for(Iterator it = a.iterator ; it.hasNet())
{
it.next();
}
这两种方法对集合进行迭代,哪个效率更高啊 ?为什么呢?
作者:
蒙武辉
时间:
2012-4-8 16:20
增强for循环
作者:
邓海涛
时间:
2012-4-8 16:28
对于声明了RandomAccessList(ArrayList有,LinkedList没有)来说,for稍高于iterator
但是对于没有声明的,则iterator远远高于for
作者:
贠(yun)靖
时间:
2012-4-8 16:37
Iterator it = a.iterator();
while(it.hasNext())
{
it.next(); 这个只new了一个对象 等该对象用完了 才会随着jvm的垃圾回收机制不定时的回收
}
2::
for(Iterator it = a.iterator ; it.hasNet())
{ 这个是在局部变量中new的对象 ,虽然每循环一次都重新new了一个对象 但是由于在局部,每循环一次就会释放一次,
也就是说每次循环一次结束 进入下一次循环之前,new的it这个对象已经释放了,这就是为什么 写for循环的时候
看似new了很多对象 而只用一个it变量就可以的原因 所以这个循环效率应该高一些的
it.next();
}
作者:
莫运飞
时间:
2012-4-8 16:47
高级for循环:
格式:
for(数据类型 变量名:被遍历变量的集合(collection)或者数组)
{
}
for(String s:al)//只能对集合中的元素取出 不可以修改
{
System.out.prinlnt(s);//假如s="55";在这里不可以复制 不可以修改元素的值
}
这两个方法的结果一样的 for高级就是迭代器的简化
Iterator<String> it=al.iterator();
while(it.hasNext())
{
System.out.prinlnt(it.next());
}。
高级for对集合进行遍历: 只能获取元素,不可以修改元素
迭代器出来遍历,还可以进行remove集合中元素的动作
传统for和高级for的区别:高级for有一个局限性,必须有被遍历的目标
map不支持迭代器
如果要对集合进行增删改查的话,就要用到ListIterator来进行遍历了。
作者:
pray
时间:
2014-4-26 05:56
在遇到你之前,我对人世间是否有真正的圣人是怀疑的;而现在,我终于相信了!我曾经忘情于汉廷的歌赋,我曾经惊讶于李杜的诗才,我曾经流连于宋元的词曲;但现在,我才知道我有多么浅薄!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2