On Sun, 4 Jan 2004, David Graham wrote:

>
> --- Stephen Colebourne <[EMAIL PROTECTED]> wrote:
> > From: "David Graham" <[EMAIL PROTECTED]>
> > > Just out of curiosity, why are you leaving Hash out of the names?  The
> > > Java idiom seems to be to indicate a collection's implementation in
> > the
> > > name.  Even the standard WeakHashMap maintains the "Hash" portion of
> > the
> > > name.  I'm not particularly tied to CaseInsensitiveHashMap but I chose
> > > that name based on current Java practices.
> >
> > Because people have assumed in the past that an XxxHashMap extends
> > HashMap
> > (normal Java naming practices). Its really just duplicate info anyway.
>
> java.util.WeakHashMap does not subclass java.util.HashMap but still
> includes "Hash" in the name.  They did that to indicate that it uses a
> hashtable in its implementation not that it subclasses a particular class.
>  So, I still believe the current Java practice is to indicate the impl. in
> the collection class name.

That's a fine reason to maintain the name.

Extending HashMap or implementing your own hashcode algorithm should earn
you the name 'HashMap', but most Maps in [Collections] should not be
HashMaps as that makes them implementation frozen.

I should be able to do:

new SoftRefMap( new CaseInsensitiveMap( new BeanMap( new HashMap() ) ) );

though I'm not sure exactly how the decorators are doing the decorating
currently, ie) might not be in the constructor.

CaseInsensitiveHashMap cannot fit into such a chained structure.

[an opinion]

Hen


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to