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
eso...@comcast-dot-net.invalid