A hashtable is a type of agent that stores data using hash technology in a near O(1) efficency (they do not get slower as you add more things to them).
Common problems
Many people forget that hashtables are not created initially in GUI. Inorder to set them up, Hashtable - Create Hashtable has to be run followed by the appropiate code to attach it to a global.
In JASS it is perfectly legal to define a global with a hashtable returned from InitHashtable.
Hashtables once created can not be destroyed and are permanent.
Misc
Hashtables are used in a way similar to a Game Cache.
Further Reading
Wikipedia has an excellent article on hashtables if you're interested in how they actually work. You can read it at: http://en.wikipedia.org/wiki/Hash_table
Actions