You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by James Carman <ja...@carmanconsulting.com> on 2005/05/13 19:20:50 UTC
[collections] MultiMaps...
I have a case in my application where I want to map one key to multiple
values. However, I don't want the values to be stored as a List. I would
rather have MultiHashMap store the values in a Set of some kind (HashSet
maybe). It would be nice if I could tell MultiHashMap what kind of
collection to use to store the values. Maybe we could parameterize the
constructor...
public MultiHashMap( Factory factory )
{
}
The factory would be used to create a collection instance each time one is
needed for a new key in the map. Maybe this is overkill and we could just
give it a Class instance and it can call newInstance() on that. Anyway,
that would allow MultiHashMap to return any kind of collection, not just
Lists. Of course, I could just create a new Set using the returned List,
but that's a lot of objects to create. What do you guys think?
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org
Re: [collections] MultiMaps...
Posted by Stephen Colebourne <sc...@btopenworld.com>.
A decorator like this is definitely the preferred solution. Its been
suggested before, but no one has yet had the itch to code it ;-)
Stephen
James Carman wrote:
> Upon further thought, why do we even have a class like MultiHashMap?
> Couldn't we write a generic MultiMap implementation that wraps another map
> and provides the "multiple" functionality?
>
> public class MapUtils
> {
> ...
> public static MultiMap multiMap( Map implementation );
> public static MultiMap multiMap( Map implementation, Factory
> collectionFactory );
> ...
> }
>
>
>
>
> -----Original Message-----
> From: James Carman [mailto:james@carmanconsulting.com]
> Sent: Friday, May 13, 2005 1:21 PM
> To: 'Jakarta Commons Developers List'
> Subject: [collections] MultiMaps...
>
>
> I have a case in my application where I want to map one key to multiple
> values. However, I don't want the values to be stored as a List. I would
> rather have MultiHashMap store the values in a Set of some kind (HashSet
> maybe). It would be nice if I could tell MultiHashMap what kind of
> collection to use to store the values. Maybe we could parameterize the
> constructor...
>
> public MultiHashMap( Factory factory )
> {
>
> }
>
> The factory would be used to create a collection instance each time one is
> needed for a new key in the map. Maybe this is overkill and we could just
> give it a Class instance and it can call newInstance() on that. Anyway,
> that would allow MultiHashMap to return any kind of collection, not just
> Lists. Of course, I could just create a new Set using the returned List,
> but that's a lot of objects to create. What do you guys think?
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org
RE: [collections] MultiMaps...
Posted by James Carman <ja...@carmanconsulting.com>.
Upon further thought, why do we even have a class like MultiHashMap?
Couldn't we write a generic MultiMap implementation that wraps another map
and provides the "multiple" functionality?
public class MapUtils
{
...
public static MultiMap multiMap( Map implementation );
public static MultiMap multiMap( Map implementation, Factory
collectionFactory );
...
}
-----Original Message-----
From: James Carman [mailto:james@carmanconsulting.com]
Sent: Friday, May 13, 2005 1:21 PM
To: 'Jakarta Commons Developers List'
Subject: [collections] MultiMaps...
I have a case in my application where I want to map one key to multiple
values. However, I don't want the values to be stored as a List. I would
rather have MultiHashMap store the values in a Set of some kind (HashSet
maybe). It would be nice if I could tell MultiHashMap what kind of
collection to use to store the values. Maybe we could parameterize the
constructor...
public MultiHashMap( Factory factory )
{
}
The factory would be used to create a collection instance each time one is
needed for a new key in the map. Maybe this is overkill and we could just
give it a Class instance and it can call newInstance() on that. Anyway,
that would allow MultiHashMap to return any kind of collection, not just
Lists. Of course, I could just create a new Set using the returned List,
but that's a lot of objects to create. What do you guys think?
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org