A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭盼 中级黑马   /  2012-3-16 22:50  /  2875 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

老师说枚举与迭代器是差不多的,但是既然相同,为什么还要区别开,两者各自的优点有哪些,又适合应用于哪些情况下

5 个回复

正序浏览
Iterator是对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:
1、迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
2、方法名称得到了改进。
回复 使用道具 举报
当出现两个相同的时候可以从三个方面考虑,也就是JDK出现新特性的原因
1.安全性
2.简化书写
3.提高性能
这个是处于简化书写的

而且枚举是Vector集合的特有的遍历方式,书写麻烦,就改由迭代器代替了
回复 使用道具 举报
枚举是Vector集合的特有的遍历方式,举例使用它的代码如下:
Vector v =new V;
v.add("dkfj");
v.add("diu");
v.add("g");
Enumeration en=v.elements();
while(en.hasMoreElements())
{
     String s=en.nextElement();
     System.out.println(s);
}
显然它和Iterator功能差不多,可它的名称以及方法的名称都过长,所以逐渐被迭代器取代了
至于优缺点你可以从上边体会一下,呵呵
回复 使用道具 举报
枚举是vector集合特有的方法,因为vector是JDK1.0版本出现的,而迭代器是JDK1.2出现的。
回复 使用道具 举报
枚举与迭代器这两个接口底层差不多的  只是枚举英文单词太长==诸多原因所以被用的少
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马