The functionality of this interface is duplicated by the Iterator interface. In addition, Iterator adds an optional remove operation, and has shorter method names. New implementations should consider using Iterator in preference to Enumeration.
Note that the remove() method throws an UnsupportedOperationException; this is done a lot when an interface defines an optional method and you wish not to really implement it. You must provide an implementation though because the interface still defines the method, so throwing this exception is the best implementation.