LinkedList


AS3.0において配列(ArrayとかVector)ってのはまるでプリミティブな機能であるかのごとく、自作クラスとは縁遠く思われがちなんだけど、実はLinkedListと呼ばれるちょっとした工夫すると、配列とほぼ(たぶん全部)同じ機能を実装できる。ものによっては、ArrayやVectorよりも処理を早くさえできる。

構造としては単純なんだけれども、言葉で説明するとちょっとわかりにくい。改めてここで説明するのも面倒なので、よそ様のよくできた説明ページを紹介する。「LinkedListとArrayListの違い」、「wikipedia:連結リスト」、fumiononaka.comの「連結リスト(linked list)」あたりを読むといいと思う。

今回は、双方向リストという構造を持ち、ArrayとVectorのほとんどのメソッド、プロパティを実装している。SortはVectorとArrayで仕様が異なるので、とりあえずArrayっぽくちょっとだけMargesortを用いている。sortOnはフィールド二つまで対応。

reverseは次のページの三番目を参考にした。
http://www.codeproject.com/KB/recipes/ReverseLinkedList.aspx

Array,Vector,LinkedListの速度比較 – wonderfl build flash online