The Dictionary class lets you create a dynamic collection of properties,
which uses strict equality for key comparison. When an object is used as a
key, the object's identity is used to look up the object, and not the value
returned from calling toString() on it.
The following statements show the relationship between a Dictionary object and a key object:
var dict = new Dictionary<Any, Any>();
var obj:Any = {};
var key:Any = {
toString: function() {
return "key";
}
};
dict[key] = "Letters";
Reflect.setField(obj, "key", "Letters");
trace(dict[key] == "Letters"); // true
trace(Reflect.field(obj, "key") == "Letters"); // true
trace(Reflect.field(obj, Std.string(key)) == "Letters"); // true because key == "key" is true b/c key.toString == "key"
trace(dict["key"] == "Letters"); // false because "key" === key is false
dict.remove(key); // removes the key
trace(dict[key] == null); // trueStatic methods
staticinlineeach(this:IMap<K, V>):Iterator<V>
Returns an Iterator over each of the values of this Dictionary.
The order of values is undefined.
staticinlineexists(this:IMap<K, V>, key:K):Bool
Returns true if key has a mapping, false otherwise.
If key is null, the result is unspecified.
staticinlineget(this:IMap<K, V>, key:K):V
Returns the current mapping of key.
If no such mapping exists, null is returned.
Note that a check like dict.get(key) == null can hold for two reasons:
- The Dictionary has no mapping for
key - The Dictionary has a mapping with a value of
null
If it is important to distinguish these cases, exists() should be used.
If key is null, the result is unspecified.
staticinlineiterator(this:IMap<K, V>):Iterator<K>
Returns an Iterator over the keys of this Dictionary.
The order of values is undefined.
staticinlinekeyValueIterator(this:IMap<K, V>):KeyValueIterator<K, V>
Returns an Iterator over the keys and values of this Dictionary.
The order of values is undefined.
staticinlineremove(this:IMap<K, V>, key:K):Bool
Removes the mapping of key and returns true if such a mapping existed, false otherwise.
If key is null, the result is unspecified.
staticinlineset(this:IMap<K, V>, key:K, value:V):V
Maps key to value.
If key already has a mapping, the previous value disappears.
If key is null, the result is unspecified.