+ application if it wishes. Data can be hashed on an integer or string key.
+
+ Example:
+ @code
+ wxHashTable table(wxKEY_STRING);
+
+ wxPoint *point = new wxPoint(100, 200);
+ table.Put("point 1", point);
+
+ ....
+
+ wxPoint *found_point = (wxPoint *)table.Get("point 1");
+ @endcode
+
+ A hash table is implemented as an array of pointers to lists.
+ When no data has been stored, the hash table takes only a little more space
+ than this array (default size is 1000). When a data item is added, an integer
+ is constructed from the integer or string key that is within the bounds of the array.
+ If the array element is @NULL, a new (keyed) list is created for the element.
+ Then the data object is appended to the list, storing the key in case other
+ data objects need to be stored in the list also (when a 'collision' occurs).
+
+ Retrieval involves recalculating the array index from the key, and searching
+ along the keyed list for the data object whose stored key matches the passed key.
+ Obviously this is quicker when there are fewer collisions, so hashing will
+ become inefficient if the number of items to be stored greatly exceeds the
+ size of the hash table.