Michael Baczynski has developed a package of common data structures useful for game development. However, their utility far exceeds game development and will come in very handy for application development based on design patterns. I came across this resource while searching for an AS3 hash table implementation. In addition to hash tables, the package contains ready to use structures for multi-dimensional arrays, queues, stacks, trees, heaps, graphs and vectors. The API docs are available as well.
The AS3 Data Structures For Game Developers (and more) by Chandima Cumaranatunge, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 3.0 United States License.

Hash tables come up a lot in DP examples from languages other than AS 3.0. The docs say that associative arrays, created using the Object class and not the Array class, can be used instead of hash tables. Does anyone know the difference between associative arrays and hash tables?
Associative Arrays is just the general name for key/value data structures. There are many different ways to implement this with various tradeoffs. A Hash table is one of these implementations.
In AS 3 an Object is a Hash Table. The only difference if you get technical is the API. myHash.get(”key”) vs myObj["key"].
The difference in using an Object over an Array is the Array IS an Object, but with a load of methods for working with numerically indexed data. If all you need is a hash the Object is much lighter than the Array. It could also be confusing for someone (another developer) to see an array, iterate through it with a for (i = 0; i < length; i++) loop and get nothing out.
In short, it’s for the same reason why you’d use a Shape over a Sprite if you’re just drawing and a Sprite over a MovieClip if you don’t need to use the timeline.
I have found in Flash CS3 that the ‘object as hash table’ does not work for keys that contain “&” “<” or “\”". Haven’t figured why yet, but it leads to some very weird behavior in my (limited) testing.