I have a class that implements the Enumeration
interface, but Java\'s foreach loop requires the Iterator
interface. Is there an <
or in commons-collections EnumerationUtils
import static org.apache.commons.collections.EnumerationUtils.toList
toList(myEnumeration)
You need a so called "Adapter", to adapt the Enumeration
to the otherwise incompatible Iterator
. Apache commons-collections has EnumerationIterator. The usage is:
Iterator iterator = new EnumerationIterator(enumeration);
There's nothing that is part of the standard library. Unfortunately you'll have to roll your own adapter. There are examples out there of what others have done, for example:
IterableEnumerator
If you just want something to iterate over in a for-each loop (so an Iterable and not only an Iterator), there's always java.util.Collections.list(Enumeration<T> e)
(without using any external libraries).
If you can modify the class then you can simply implement Iterator<T>
too and add the remove
method..
No need to roll your own. Look at Google's Guava library. Specifically
Iterators.forEnumeration()