Is there an Ordered Dictionary?
andreas.raab at gmx.de
Thu Jan 9 22:08:36 UTC 2003
> Is there a dictionary that holds its associations in the same
> order you add them in?
> BTW, on the subject of dictionaries, are you supposed to use
> associationsDo to iterate over all key - value pairs?
Well, it largely depends on how you view sequenceable collections. I
commonly think about them as "keyed by index" (which is consistent with
#at:[put:]) but #associationsDo: will enumerate over their values (which
is "correct" for the case that the collection contains associations but
for all others it isn't).
If you use #keysAndValuesDo: for enumeration the system will give you
the "integer keys" for sequenceable collections, so in most cases I
prefer this protocol (and yes, I think the inconsistency between
#keysAndValuesDo: and #associationsDo: is quite annoying).
Incidentally, whether any of the two really make sense for the case of
an "OrderedDictionary" is yet another matter ;-) In this case you migh
(at least at times) need a "third interpretation" since whether you mean
the "index key" or the "name key" is not obvious in any case.
More information about the Squeak-dev