Forked from: yonatan's Array vs. Vector vs. Linked list diff:6 forked from: Array vs. Vector vs. Linked list aaulia forked:0favorite:0lines:77license : MIT License modified : 2009-10-22 15:45:05 Embed Tweet // forked from yonatan's Array vs. Vector vs. Linked list package { import flash.display.Sprite; import flash.text.*; import flash.utils.getTimer; public class FlashTest extends Sprite { public function FlashTest() { var tf:TextField = new TextField; tf.width = stage.stageWidth; tf.height = stage.stageHeight; tf.text = "Array vs. Vector vs. Linked list test"; addChild( tf ); tf.appendText( "\n" + ITERATIONS + " iterations - times in ms:" ); tf.appendText( "\nNo collection: " + testNothing() ); tf.appendText( "\nArray: " + testArray() ); tf.appendText( "\nVector: " + testVector() ); tf.appendText( "\nLinked list: " + testList() ); } private static const ITERATIONS:int = 200000; public function testNothing():Number { var s:Number = getTimer(); var n:int = 0; for( var i:int=0; i < ITERATIONS; i++ ) { for( var j:int=0; j < 1000; j++ ) { n++; } } return getTimer() - s; } public function testArray():Number { var a:Array = new Array; // init for( var ii:int=0; ii < 1000; ii++ ) { a[ii] = 0; } // test var s:Number = getTimer(); for( var i:int=0; i < ITERATIONS; i++ ) { for( var j:int=0; j < 1000; j++ ) { a[j]++; } } return getTimer() - s; } public function testVector():Number { var v:Vector.<int> = new Vector.<int>; // init for( var ii:int=0; ii < 1000; ii++ ) { v[ii] = 0; } // test var s:Number = getTimer(); for( var i:int=0; i < ITERATIONS; i++ ) { for( var j:int=0; j < 1000; j++ ) { v[j]++; } } return getTimer() - s; } public function testList():Number { var head:Node = new Node; var current:Node; // init current = head; for( var ii:int=0; ii < 999; ii++ ) { current.next = new Node; current = current.next; } // test var s:Number = getTimer(); for( var i:int=0; i < ITERATIONS; i++ ) { current = head; do { ++(current.value); // // I can't believe nobody saw this o_O // current = current.next // } while( current = current.next ); } return getTimer() - s; } } } class Node { public var next:Node = null; public var value:int = 0; } Code Fullscreen Preview Fullscreen oops by yonatan at 2009/10/24 17:13:13 appendText height width TextField text addChild Vector Array Sprite Number int