actionscript-3 - 对 AS3 ByteArray 进行排序

标签 actionscript-3 air sorting

我正在设计一个 Air 应用程序,需要在内存中存储数千条记录,并且需要通过各种键对它们进行有效排序。

我考虑使用 ByteArray,因为这样可以避免普通 AS3 对象的所有开销,并且可以让我更有效地使用内存。

但是,挑战在于如何对 ByteArray 内的记录进行排序。我想到了两种可能性:

1- 在 AS3 中实现快速排序或堆排序,并以这种方式对数组进行排序。但是,我不确定这是否足够高效。例如,ByteArrays 没有复制内存块的方法;它必须逐字节完成。

2- 使用 C 创建一个 Air Native Extension (ANE),它采用 ByteArray 并对其进行排序。这样做的缺点是,对于它需要运行的所有平台来说,实现它会更困难。

你会推荐什么?您以前有做过类似事情的经验吗?

最佳答案

我想说使用数组或向量对象,可以通过 sortOn() 按你想要的任何键对数组进行排序,并通过 sort() 对向量进行排序,所以你可以实现你需要的任何行为,因为后者接受一个函数作为其参数,check here 。我相信你不会用 ByteArrays 得到任何结果,因为对对象进行排序实际上是对其中的链接进行排序,而 ByteArray 将包含实际数据。

关于actionscript-3 - 对 AS3 ByteArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14725302/

相关文章:

android - 如何在移动设备上使用 Adob​​e AIR 读取 jpg 图像方向

flash - 如何修复 "initial content not found"错误?

sorting - 基于比较的排序技术的局限性

actionscript-3 - ActionScript 3 中的 EventDispatcher 错误

iphone - Actionscript 3.0 剪切和粘贴或删除对象

actionscript-3 - 以编程方式设置 AIR 窗口位置?

php - 是否可以在 PHP 中使用 array_shift() 并获取 key ?

r - 按行排序数据

actionscript-3 - 符号偶尔会卡在边缘

c++ - 用C++完成此任务;从AS3.0迁移