2009-02-06 8 views
7

Cada vez me siento más frustrado con el diccionario de Flex (que en realidad es solo una matriz con índices de cadenas).contenedor de diccionario/mapa/árbol/hash adecuado en Flex

cosas triviales no parecen ser posible, como conseguir el último elemento, o incluso interactuando sobre la ordenados recipiente de acuerdo con teclas (la orden parece ser arbitraria), y las funciones de clasificación parecen hacer un lío de todo si se le da una matriz con índices de cadenas.

¿Existe una biblioteca de contenedores mejor y más completa para Flex? ¿Algo con matrices, listas, colas, mapas, multimaps, hashmaps, etc.?

Respuesta

8

El proyecto as3ds tiene un montón de collections classes para AS3. No los he usado yo mismo, pero se ven muy capaces (y podría agregar, se centró en el rendimiento). Utiliza la licencia de MIT.

Maashaack tiene algunos collections classes también. Usan MPL 1.1/GPL 2.0/LGPL 2.1.

+2

El enlace a as3ds está roto. http://lab.polygonal.de/ds/ parece ser el mismo proyecto. –

1

No conozco una biblioteca de tipos de datos de colección para ActionScript 3/Flex, pero seguramente la agradecería.

Sin embargo, tenemos algunas colecciones adicionales en el marco Spring ActionScript. También tenemos un conjunto de métodos de utilidad para trabajar con tipos de datos existentes. Verifique las fuentes en https://fisheye.springframework.org/browse/se-springactionscript-as/spring-actionscript/trunk/core/src/main/actionscript/org/springextensions/actionscript/collections y https://fisheye.springframework.org/browse/se-springactionscript-as/spring-actionscript/trunk/core/src/main/actionscript/org/springextensions/actionscript/utils

Quiero señalar que un diccionario no es solo una matriz con índices de cadenas. Esa sería la definición de un Objeto en ActionScript. El diccionario puede contener tipos complejos como claves y no solo cadenas, lo cual es una gran diferencia. También usa igualdad estricta (===) para la comparación de claves.

+0

Gracias por el enlace. Pero algunas de estas funciones de utilidad no son exactamente lo que estoy buscando. p.ej. la implementación de containsKey (para Dictionary) realiza una iteración O (n) ... difícilmente óptima. Me temo que estos no son un sustituto de los contenedores adecuados. –

1

Aunque no es una biblioteca de contenedor completa, hay una implementación de HashSet para AS en 3 lb Monkey Brain. Lo he usado por un tiempo sin quejas.

0

Polygonal Labs tiene una biblioteca de estructuras de datos que he usado en el pasado. Está orientado al desarrollo de juegos, lo que realmente significa que está súper optimizado. Incluye:

Multidimensional Array, cola, Montón, tabla hash, árbol, árbol binario, binario de búsqueda de árbol, lista enlazada, Pila, gráfico, vector de bits

Tienen un iterador implementado en todas las clases eso será realmente familiar si lo has hecho y el desarrollo de Java y fácil de aprender si no lo has hecho.

comprobar su sitio para una descripción completa: http://lab.polygonal.de/ds/

Aquí está la biblioteca en Google Code: http://code.google.com/p/as3ds/