3
public var obj:Object;
public var dictionary:Dictionary;


public function MyClass(){

    obj = new Object();
    dictionary = new Dictionary();

    obj["1"] = 1;
    obj["2"] = 2;

    dictionary["3"] = 3;
    dictionary["4"] = 4;
}

public function returnFromObject(parameter:String):int{

     return obj[parameter];
}

public function returnFromDictionary(parameter:String):int{

     return dictionary[parameter];
}

他们可以为我服务。除非使用我不知道的其中任何一个对性能有明显影响。

4

3 回答 3

2

不同之处在于在字典的情况下能够使用对象作为键而不是字符串。除此之外,我不知道有任何重大差异(但不记得曾经在这些方面看到过任何真正的基准,所以如果有人更聪明,请告诉我们)。

http://gskinner.com/blog/archives/2006/07/as3_dictionary_.html

评论中仅提及页面上的性能是一个简短的参考,一般来说,因为他们说我发现这些是空想的,并且依赖于应用程序。

于 2012-11-15T22:53:03.023 回答
2

根据以下内容,似乎 Dictionary 比对象和数组快得多:

http://www.zombieflambe.com/actionscript-3/as3-dictionary-class-array-object-benchmark/

于 2012-11-15T22:55:47.650 回答
1

虽然可能有比这更多的差异,但我的第一个想法是变量声明,以及循环对象的能力。

var obj:Object = new Object();
obj.a = "test1";
obj.b = "test2";
obj.c = "test3";

for each (var prop in obj) trace(prop); //traces "test1, test2, test3"

更多信息在这里:http ://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Dictionary.html

于 2012-11-15T22:54:30.533 回答