http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/
The dictionary does what I need but I do need to care about performance. Does anybody know if the Dictionary is implemented as a hashtable?
Or more specifically, does it perform in O(1)?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
it acts as a hashmap. in fact, every ActionScript object that is an instance of a dynamic class, acts as hashmap. of course keys can always collide with properties. this behaviour comes from JavaScript. I consider it a design failure.
Array is different in that it will perform some tricks on integer keys, and Dictionary is different in that it doesn’t convert keys to strings, but uses any object value as key. Please note that Number and Boolean are both converted to String.
now why whould you care how it is implemented? if it is well implemented, you probably don’t wanna know. You can benchmark it. It has O(1) for all operations and is reasonably fast (inserting costs a about twice as much time as an empty method call, deleting costs less). Any alternative implementation will be slower.
here a simple benchmark (be sure to compile it for release and run it in the right player):