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();
var obj = new Object();
var key:Object = new Object();
key.toString = function() { return "key" }

dict[key] = "Letters";
obj["key"] = "Letters";

dict[key] == "Letters"; // true
obj["key"] == "Letters"; // true
obj[key] == "Letters"; // true because key == "key" is true b/c key.toString == "key"
dict["key"] == "Letters"; // false because "key" === key is false
delete dict[key]; //removes the key

Constructor

new (weakKeys:Bool = false)

Creates a new Dictionary object. To remove a key from a Dictionary object, use the delete operator.

Parameters:

weakKeys

Instructs the Dictionary object to use "weak" references on object keys. If the only reference to an object is in the specified Dictionary object, the key is eligible for garbage collection and is removed from the table when the object is collected.

Methods

inline each ():Iterator<V>

Returns an Iterator over each of the values of this Dictionary.

The order of values is undefined.

inline exists (key:K):Bool

Returns true if key has a mapping, false otherwise.

If key is null, the result is unspecified.

inline get (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:

  1. The Dictionary has no mapping for key
  2. 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.

inline iterator ():Iterator<K>

Returns an Iterator over the keys of this Dictionary.

The order of values is undefined.

inline remove (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.

inline set (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.