我对Flex的词典(实际上只是一个带字符串索引的数组)越来越感到沮丧。
琐碎的事情似乎是不可能的,比如获取最后一个元素,甚至根据键遍历排序容器(顺序似乎是任意的),并且排序函数似乎使如果给出一个带有字符串索引的数组,那么一切都会搞乱。
Flex是否有更好,更完整的容器库?有数组,列表,队列,地图,多图,哈希映射等的东西?
答案 0 :(得分:8)
对于AS3,as3ds项目有一堆collections classes。没有自己使用它们但它们看起来非常有能力(我可能会添加,专注于性能)。使用MIT许可证。
Maashaack也有一些collections classes。他们使用MPL 1.1 / GPL 2.0 / LGPL 2.1。
答案 1 :(得分:1)
我不知道ActionScript 3 / Flex的集合数据类型库,但我当然会很感激。
我们在Spring ActionScript框架中确实有一些额外的集合。我们还有一堆实用程序方法来处理现有的数据类型。查看https://fisheye.springframework.org/browse/se-springactionscript-as/spring-actionscript/trunk/core/src/main/actionscript/org/springextensions/actionscript/collections和https://fisheye.springframework.org/browse/se-springactionscript-as/spring-actionscript/trunk/core/src/main/actionscript/org/springextensions/actionscript/utils
上的来源我想指出一个Dictionary不仅仅是一个带字符串索引的数组。这将是ActionScript中Object的定义。字典可以将复杂类型作为键而不仅仅是字符串,这是一个很大的区别。它还使用严格相等(===)进行密钥比较。
答案 2 :(得分:1)
虽然它不是一个完整的容器库,但在3 lb Monkey Brain处有一个AS的HashSet实现。我已经使用它一段时间而没有任何抱怨。
答案 3 :(得分:1)
不要错过AS3Commons Collections Framework,包括多个列表,集,地图和树。有关其他图书馆的比较,请访问文章Why we need a collection framework in ActionScript。
答案 4 :(得分:0)
Polygonal Labs有一个我以前用过的数据结构库。 它面向游戏开发,这实际上意味着它的超级优化。它包括:
多维数组,队列,堆栈,哈希表,树,二叉树,二进制搜索树,链接列表,堆,图,位矢量
他们在所有类上都实现了一个迭代器模式,如果你已经完成并且Java开发,那将非常熟悉,如果你没有,那就很容易学习。
查看他们的网站以获取完整说明:http://lab.polygonal.de/ds/
以下是Google代码上的库:http://code.google.com/p/as3ds/