Is a dictionary or an array faster?



  • If I have position x and y and rotation and want to be setting objects to those values, would it faster to have them as keys in a dictionary, or as indexes in an array?



  • @iTap-Development when in doubt, use arrays.

    Arrays are faster for almost everything, by an order of magnitude. Particularly in Objective-C, which is how they'd be implemented.

    The process of looking up, via a key, is quite slow, when compared with index lookups of arrays.

    When it comes to iterating through one or the other, arrays are often much more than an order of magnitude faster due to their inherently streamlined memory usage.

    Then there's unpacking.

    When you store x, y and rotation in a dictionary at a key, you have to "unpack" that to use it, which takes even longer.

    So you're best off having an array for each:

    arrayX
    arrayY
    arrayRotation
    arrayObjectName

    and iterating through when you need.



  • @Deeeds thanks!