Get an Enumeration (for the Keys) of a Map (HashMap) in Java?
enumeration, java
Solution
Apache commons-collections have an adapter that makes the `Iterator` available for use like an `Enumeration`. Take a look at IteratorEnumeration.
Adapter to make an Iterator instance appear to be an Enumeration instances
So in short you do the following:
Enumeration enumeration = new IteratorEnumeration(hashMap.keySet().iterator());
Alternatively, if you (for some reason) don't want to include commons-collections, you can implement this adapter yourself. It is easy - just make an implementation of `Enumeration`, pass the `Iterator` in a constructor, and whenever `hasMoreElements()` and `nextElement()` are called, you call the `hasNext()` and `next()` on the underlying `Iterator`.
Use this if you are forced to use `Enumeration` by some API contract (as I assume the case is). Otherwise use `Iterator` - it is the recommended option.
Problem
As far as I understand this, it seems that there is not a direct way of getting an `Enumeration` directly for the Keys of a `HashMap`. I can only get a `keySet()`. From that `Set`, I can get an `Iterator` but an `Iterator` seems to be something different than an `Enumeration`. What is the best and most performant way to directly get an `Enumeration` from the Keys of a `HashMap`? Background: I am implementing my own ResourceBundle (=>`getKeys()` Method), and I have to provide/implement a method that returns the Enumeration of all Keys. But my implementation is based on a `HashMap` so I need to somehow figure out how to best convert betweens these two "Iterator/Enumerator" techniques.