黑马程序员技术交流社区
标题:
集合获取元素问题
[打印本页]
作者:
\(^o^)/
时间:
2014-4-29 10:17
标题:
集合获取元素问题
本帖最后由 \(^o^)/ 于 2014-4-29 15:44 编辑
for(int x=0;x<a.size();x++)
{
sop("a("+x+")="+a.get(x));
}
Iterator it=a.iterator();
while(it.hasNext())
{
sop("next:"+it.next());
}
复制代码
请问下以上两种方法都是获取集合中的元素,上面一种是以遍历的形式,下面一种是以迭代器的形式,请问两种方式有什么不同吗?
作者:
展展
时间:
2014-4-29 10:30
上面for遍历的方法只能在list集合或者子类使用,到set集合和map集合是使用不了的。下面迭代器的方法,list集合set集合map集合都可以使用,注意map集合,也是使用set集合的迭代器滴,酱紫
作者:
XinWen
时间:
2014-4-29 10:56
本帖最后由 XinWen 于 2014-4-29 10:57 编辑
我的理解是 迭代器 是个更通用的方法, 他应该是为了 多态 而生的。 就是所有的 Collection 的子类都 提供这个方法。 而 用 角标的方法 是 List 这个体系里面特有的方法 至于效率 ,我猜 肯定是 特别的 最有效率 ,也就是 角标的 最有效率。因为 迭代 要考虑的通用性比 角标的 多。所以更复杂。
作者:
倪大大
时间:
2014-4-29 14:53
你这个只能值是list集合能用 因为list集合有序有角标
迭代器更符合集合的通用取出方法,每个集合都有特定的迭代器取出方法(这是内部实现的,不需要你关心),你直接拿来用就行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2