Closed GoogleCodeExporter closed 9 years ago
The current behavior is deliberate. Every key in the multimap must have at
least one
value. It would be confusing if, for example, Multimap.keySet() included a key
that
had no corresponding values in the multimap.
As a workaround, you could add a null value or a Null Object
<http://en.wikipedia.org/wiki/Null_Object_pattern> value to the multimap,
Original comment by jared.l....@gmail.com
on 17 Dec 2007 at 5:03
bruceg111@yahoo.com made the following comment:
_________________________
I was interested in the google collections so I was reading through
this thread. I was wondering why you would say that every key must
have at least one value. In the reading I did, one of the reasons for
multi-map was to avoid code like:
Map m = ...
List l = (List)m.get("x");
if (l == null) {
l = new ArrayList();
m.put("x", l);
}
l.add("y");
In this scenario, it would allow "y" to have been null (I believe a
list can have at least one null element right?). And it could also use
the edge case to check for null and just use an empty array list as
the value. Either way, it seems like put() should never ignore data or
at least should throw an exception to signify to the caller that it is
illegal.
Regards,
Bruce
_________________________
Our multimap implementations have the following behavior when key isn't in the
multimap:
1) get(key) returns an empty collection
2) get(key).put(value) adds the key-value mapping to the multimap
Will that handle the scenarios you're considering?
Original comment by jared.l....@gmail.com
on 30 Dec 2007 at 8:17
Original issue reported on code.google.com by
Koen.Ong...@gmail.com
on 17 Dec 2007 at 11:13