Vectorクラスについて

前回、Vectorクラスについて書いていなかったのでそれについて


なぜ、Vectorクラスを利用したかというと
さらなる処理落ち改善のためです。Arrayよりかなり高速と聞いたので。


Vectorクラスの使い方。
宣言


var vec:Vector. = new vec.();


こんな感じに<>の中に要素の型を指定します。


使い方は配列と同じです。
sortやfilterなどArrayと同じメソッドがあります。


ついでにシューティングゲームプログラム内でも使っているfilterメソッドの使い方


リファレンスより

filter(callback:Function, thisObject:Object = null):Vector.
ベクター内の各アイテムについてテスト関数を実行し、指定された関数について true を返すすべてのアイテムを含む新しいベクターを返します。


例えばこんな風に書いて使います。

package {
	import __AS3__.vec.Vector;
	
	import flash.display.Sprite;

	public class TestVector extends Sprite
	{
		public function TestVector()
		{
			var vec:Vector.<int> = new Vector.<int>();
			
			//0から99までの数字を入れていく
			for(var i:uint = 0; i < 100; i++){
				vec.push(i);
			}
			
			//中身の確認
			for each(var j:uint in vec){
				trace(j);
			}
			
			//要素を奇数のみにする。
			vec = vec.filter(func);
			
			//中身の確認
			for each(j in vec){
				trace(j);
			}
		}
		
		//itemにはvecの要素
		//indexにはitemが格納されているVectorの添字
		private function func(item:uint, index:int, vec:Vector.<int>):Boolean{
			return item % 2 == 0;  //偶数ならtrue
		}
	}
}


出力
1
2
3
:
:
99



0
2
4
:
:
96
98


という感じ


簡単にVector内のいらないものを削除して整理できる。
Arrayでも使い方は全く同じです。