Array vs. Vector vs. Linked List

by jozefchutka
♥0 | Line 57 | Modified 2010-11-15 17:56:48 | MIT License
play

ActionScript3 source code

/**
 * Copyright jozefchutka ( http://wonderfl.net/user/jozefchutka )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/9V6L
 */

package
{
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.text.TextField;
    import flash.ui.Multitouch;
    
    [SWF(width="465", height="465", frameRate="30", backgroundColor="#FFFFFF")]
    public class WonderflApp extends Sprite
    {
        public var tf:TextField = new TextField();
        
        public function WonderflApp():void
        {
            var count:uint = 1000000;
            
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
            
            var i:uint = count;
            var d0:Date = new Date();
            var array:Array = new Array();
            while(i--)
                array.push(new Item)
            var d1:Date = new Date();
            
            i = count;
            var last:Item = new Item;
            while(i--)
                last = last.next = new Item;
            var d2:Date = new Date();
            
            
            i = count;
            var list:Vector.<Item> = new Vector.<Item>; 
            while(i--)
                list.push(new Item);
            var d3:Date = new Date();
            
            
            var list2:Vector.<Item> = new Vector.<Item>(count, true); 
            i = count;
            while(i--)
                list2[i] = new Item; 
            var d4:Date = new Date();
            
            addChild(tf);
            tf.appendText("array : " + (d1.time - d0.time) + "ms \n");
            tf.appendText("linked list: " + (d2.time - d1.time) + "ms \n");
            tf.appendText("vector: " + (d3.time - d2.time) + "ms \n");
            tf.appendText("vector2: " + (d4.time - d3.time) + "ms \n");
            tf.multiline = true;
            tf.height = 200;
            tf.width = 200;
            tf.background = true;
            tf.border = true;
        }
    }
}

final class Item
{
    public var next:Item;
    public function item():void
    {
        
    }

}