我有一個對象存儲對的查找和替換,我一次執行多達1500個字符串。如何在Actionscript 3中實現快速有效的字符串壓縮?
function addShort(long:String):void
{
_pairs[long] = _nextShort;
}
_nextShort
返回一個自動:
該目的是利用對使用將接受String,然後存儲此作爲與所述值是自動分配的基座36號,這樣的性質的方法填充增加值是的.toString(36)
的主題,因此在運行上述幾次可能使_pairs
這個樣子的:
_pairs:Object = {
"class": "0",
"testing.objects.TestBlock": "1",
"skin.x": "2",
"skin.y": "3",
...........
"someString": "az1"
};
這個對象可以實際最終是 - [R非常大,有超過幾百對存儲。
然後我有一個方法,將採取一個「長」字符串(其中將包括我以前給addShort()
的字符串),並返回一個新的字符串,其中這些字符串已被替換爲各自的短值。
的方法是這樣的:
public function shorten(long:String):String
{
for(var i:String in _pairs)
long = long.split(i).join(_pairs[i]);
return long;
}
尼斯一個簡單的,但在我心目中,我在,我可能想「縮短」的情況下,預見一個巨大的問題2000+字符串和_pairs
對象已在同時有500多對。
這最終成爲1,000,000次迭代,顯然看起來效率不高。
我該如何顯着改善這一過程?
看起來你似乎正試圖實現遊程編碼的衍生物。你有沒有想過使用rle? – weltraumpirat
不能說我聽說過它 - 你有更多的信息嗎? – Marty
看起來更像一些天真的[LZW](https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch)給我。 – Kapep