Re: How convert Iterator into Enumeration
On 11/28/2012 6:55 AM, Jan Burse wrote:
Dear All,
Is there a fast way to have an Enumeration from a HashMap?
I am trying to reimplement the HttpServletRequest interface,
and I am trying to use a HashMap for parameters and attributes.
I guess this is valid when my web application doesn't use
a HttpServletRequest concurrently, right? Or might the web
server populate it concurrently?
Now I am stuck here:
/**
* <p>Retrieve the parameter names.</p>
*
* @return The names.
*/
public Enumeration<String> getParameterNames() {
return parametermap.keys();
}
public Enumeration<String> getParameterNames() {
return new Enumeration<String>() {
private final Iterator<String> iter =
myHashMap.iterator();
@Override
public boolean hasMoreElements() {
return iter.hasNext();
}
@Override
public String nextElement() {
return iter.next();
}
};
}
If you do this sort of thing a lot write yourself a utility
class implementing Enumeration<T>, with a constructor that
takes an Iterator<T>. A companion class wrapping an Iterator<T>
around an Enumeration<T> is equally easy to write, and might
also be handy. (I'm a little surprised that Snoracle doesn't
provide such wrappers -- or maybe they do, but under names
that have escaped my notice.)
--
Eric Sosman
esosman@comcast-dot-net.invalid