哈希表或映射中的枚举有什么用?

What is the use of Enumerations in Hashtables or maps?

我在 Stack Overflow 上寻找哈希表的一些例子,发现了这个:

Enumeration enumeration = companies.elements();

while ( enumeration.hasMoreElements() ) {
   System.out.println("hashtable values: "+enumeration.nextElement());
}

为什么我们使用枚举,特别是在哈希表中,它的意义是什么?

枚举基本上是 Iterator 的旧形式。基本上,它们允许您遍历一个集合并单独获取它的所有元素。

我们这样做的原因是对于 HashTableHashMapHashSetLinkedList 等,您无法通过索引有效地访问元素。事实上,在前三种情况下,索引没有任何意义。因此可以使用迭代器或枚举来遍历元素以访问它们。

正如评论中提到的 chrylis,请不要使用 Enumerations。 Iterators 较新并且具有一些特殊的语法功能,例如增强的 for 循环。