Tip from the pros: when you change a class, you might want to check
the subclasses for possible problems with that change.
:P
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5729 542714f4-19e9-0310-aa3c-eee0fc999fb1
- Implement keys() and values() using forEach().
- Less code is better code.
- But, it's less efficient:
- values() now looks up simple-key values by hashing
- values() now unwraps non-simple keys, even though unneeded
- keys() looks up simple-key values, even though unneeded
Say it with me like a 14-year-old girl: whatEVER!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5724 542714f4-19e9-0310-aa3c-eee0fc999fb1
(Dictionary supports null keys, so we merely call null a 'simple' key.)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4848 542714f4-19e9-0310-aa3c-eee0fc999fb1
Hashtable -> HashMap
The one regularly used is now called HashMap. It can have keys of simple
flash datatypes, as well as objects that implement Hashable.
HashObjectMap has the ability to use nearly any object as a key, but
pays a price for it and should be avoided unless you need it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4591 542714f4-19e9-0310-aa3c-eee0fc999fb1
- Renamed HashMap Hashtable, because I wanted a version without ties to
mx.* code. User-defined hashing functions may be specified.
- Created a subclass of Hashtable called HashMap which uses
functions in mx.utils.ObjectUtil to hash non-Hashable complex keys.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4120 542714f4-19e9-0310-aa3c-eee0fc999fb1
Internally, three different things may be done for storage:
- Simple keys can utilize the Dictionary class, we just use one of those
inside the map.
- If the key implements Hashable, we can hash it.
- Otherwise, use mx.utils.ObjectUtil to generate a hash for any other key and
also to compare the keys. Keys are then wrapped in a KeyWrapper object
that implements Hashable. This last case will also handle null as a key.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4117 542714f4-19e9-0310-aa3c-eee0fc999fb1