Java集合接口Enumeration
Enumeration接口是Iterator迭代器的“古老版本”,从JDK 1.0开始,Enumeration接口就已经存在了(Iterator从JDK 1.2才出现)。
Enumeration接口只有两个名字很长的方法:
- boolean hasMoreElements():如果此迭代器还有剩下的元素,则返回true。
- Object nextElement():返回该迭代器的下一个元素,如果还有的话(否则抛出异常)。
通过这两个方法不难发现,Enumeration接口中的方法名称冗长,难以记忆,而且没有提供Iterator的remove()方法。如果现在编写Java程序,应该尽量采用Iterator迭代器,而不是用Enumeration迭代器。
提示:Java之所以保留Enumeration接口,主要是为了照顾以前那些“古老”的程序,那些程序里大量使用了Enumeration接口,如果新版本的Java里直接删除Enumeration接口,将会导致那些程序全部出错。在计算机行业有一条规则:加入任何规则都必须慎之又慎,因为以后无法删除规则。
实际上,前面介绍的Vector(包括其子类Stack)、Hashtable两个集合类,以及另一个极少使用的BitSet,都是从JDK 1.0遗留下来的集合类,而Enumeration接口可用于遍历这些“古老”的集合类。对于ArrayList、HashMap等集合类,不再支持使用Enumeration迭代器。
下面程序示范了如何通过Enumeration接口来迭代Vector和Hashtable:
上面程序使用Enumeration迭代器来遍历Vector和Hashtable集合里的元素,其工作方式与Iterator迭代器的工作方式基本相似。但使用Enumeration迭代器时方法名更加冗长,而且Enumeration迭代器只能遍历Vector、Hashtable这种古老的集合,因此通常不要使用它。除非在某些极端情况下,不得不使用Enumeration,否则都应该选择Iterator迭代器。
标签:Java,迭代,Iterator,接口,Enumeration,集合 From: https://www.cnblogs.com/hzhiping/p/16861266.html