HAKUHIN's home page
更新履歴
 
 



Vector クラスとは?
 


■Vectorクラスについて

ベクタークラスは、配列用のクラスです。
 
配列といえばすでに Array 型が存在しますが、これとどう違うのかが気になります。
 
■Array クラスと Vector クラスの違い

Array型は、「好きな番地」に「好きな型のデータ」を格納する事ができますが Vector型はすべての番地に「同じ型のデータ」しか格納できません。
 
また、Array型は、「マイナスの番地」や「いきなり大きい番地」にデータを格納する事ができますが、 Vector型では 0 番地から 1 ずつ順番に格納しないとエラーとなります。
 
そして、Array 型より Vector 型のほうが高速に動作します。
 
すべての配列に同じ型のデータが格納されるのであれば Vector 型を使うと高速に動作してお得となります。
 
Array 型と Vector 型は、基本的に同じようなメソッドを使用する事ができます。
 
 



Vector クラスのベース型を宣言する
 


■Vector クラスのベース型を宣言する

Vector に格納する型の事をベース型といいます。
 
このベース型を指定するには、「後置型パラメータシンタックス」を使用します。 「後置型パラメータシンタックス」は以下のように記述します。
 
後置型パラメータシンタックスの記述方法

Vector.< 型名 >
 
Vectorオブジェクトの作成例です。
 
Boolean型のデータを格納するための Vector オブジェクトを作成する

var vector : Vector.< Boolean > = new Vector.< Boolean >();

vector[0] = true;
vector[1] = false;
vector[2] = true;
 
String 型のデータを格納するための Vector オブジェクトを作成する

var vector : Vector.< String > = new Vector.< String >();

vector[0] = "abc";
vector[1] = "def";
vector[2] = "ghi";
 
DisplayObject 型のデータを格納するための Vector オブジェクトを作成する

var vector : Vector.< DisplayObject > = new Vector.< DisplayObject >();

vector[0] = new Sprite();
vector[1] = new MovieClip();
 
■初期データを格納しつつ Vector オブジェクトを作成する

Vector() 関数を使うと、初期データを格納しつつ Vector オブジェクトを作成する事が可能です。
 
引数に Array オブジェクトか Vector オブジェクトを渡します。
 
Vector オブジェクトを作成しつつ Number 型のデータを格納する

var vector : Vector.< Number > = Vector.< Number >([0,123,456]);
 
■特殊な Vector オブジェクトの作成方法(Adobe Flash CS5 以降)

「Flash CS5」、「Flash Builder 4」、「Flex 4」以降であれば、
 
初期データを格納しつつ Vector オブジェクトを作成する、以下のような記述が可能です。
 
構文を使って Vector オブジェクトを作成する

var vector : Vector.< Number > = new .< Number >[0,123,456];
 




Vector クラスのメソッドについて
 


■Vector クラスのメソッド一覧

Vector クラスには、以下のメソッドが存在します。
 
メソッド 説明
concat() 配列同士をつなげる。
shift() 配列の先頭のデータを削除して結果を返す。
unshift() 配列の先頭にデータを追加して長さを返す。
pop() 配列の最後のデータを削除して返す。
push() 配列の最後にデータを追加して長さを返す。
slice() 配列の?番目から?番目を配列として返す。
splice() 配列の?番目から?個を削除して1つの値を追加する。
sort() 配列をソートする。
reverse() 配列の順番を逆にする。
join() 配列データの間に文字を挟みすべて繋げてストリングにして返す。
toString() 配列データをすべて繋げてストリングにして返す。
every() コールバック関数から該当するデータを調べる。
forEach() コールバック関数からすべてのデータを調べる。
filter() コールバック関数からデータを抽出し新しい配列を作成する。
 
例) 配列をつなげて新しい配列を作成する。

var a = Vector.< Number >([1 ,2 ,3 ]);
var b = Vector.< Number >([4 ,5 ,6 ]);
var c = Vector.< Number >([7 ,8 ,9 ]);
var d = Vector.< Number >([10,11,12]);

var e = a.concat(b,c,d);
 
 
例) 配列の先頭のデータを削除して削除したデータを返す

var a = Vector.< String >(["A" ,"B" ,"C" ,"D" ,"E"]);
var b = a.shift();
 
 
例) 配列の先頭に"D","E","F"を追加して長さを返す

var a = Vector.< String >(["A" ,"B" ,"C"]);
var b = a.unshift("D" ,"E" ,"F");
 
 
例) 配列の最後を削除して削除したデータを返す。

var a = Vector.< String >(["A" ,"B" ,"C" ,"D"]);
var b = a.pop();
 
 
例) 配列の最後に"D","E","F"を追加して長さを返す

var a = Vector.< String >(["A" ,"B" ,"C"]);
var b = a.push("D" ,"E" ,"F");
 
 
例) 配列の1番目から3番目を新しい配列として返す

var a = Vector.< String >(["A" ,"B" ,"C" , "D" ,"E" ,"F"]);
var b = a.slice(1, 4);
 
 
例) 配列の1番目から3個分削除してその間に"G","H","I"を追加する

var a = Vector.< String >(["A" ,"B" ,"C" , "D" ,"E" ,"F"]);
var b = a.splice(1, 3 ,"G","H","I");
 
 
例) 配列をソートする。

var a = Vector.< Number >([2, 4, 1, 3, 0]);

// ソート用コールバック関数
var func = function(a,b){
	if(a == b)	return 0;	// 第01引数と第02引数が等しいなら 0 を返す
	if(a > b)	return 1;	// 第01引数が後に来るなら正を返す
	return -1;		// 第02引数が後に来るなら負を返す
}
a.sort(func);
 
 
例) 配列の順番を逆にする。

var a = Vector.< Number >([0, 1, 2, 3, 4]);
a.reverse();
 
 
例) 配列の各番地のデータに文字を挟んで繋げて1つの文字列として返す。

var a = Vector.< Number >([0, 1, 2, 3, 4]);
var b = a.join("-");
 
 
例) 配列の各番地のデータに","を挟んで繋げて1つの文字列として返す。

var a = Vector.< Number >([0, 1, 2, 3, 4]);
var b = a.toString();
 
 
 
例) 配列のデータに該当するデータがあるか調べる。

var a = Vector.< Number >([0, 1, -2, 3, 4]);

// 検索用コールバック関数
var func = function(item,id,v){
	if(item < 0){
		// 該当するデータが見つかり検索を終了するなら false を返す
		return false;
	}

	// 継続して調べるなら true を返す
	return true;
}
var b = a.every(func);
 
 
例) 配列のデータをすべて調べる。

var a = Vector.< Number >([0, 1, -2, 3, 4]);

// 検索用コールバック関数
var func = function(item,id,v){
	trace(id,item);
}
var b = a.forEach(func);
 
 
例) 配列のデータから該当するデータを抽出して新しい配列を作成する。

var a = Vector.< Number >([0, 1, -2, 3, -4]);

// 抽出用コールバック関数
var func = function(item,id,v){
	if(item < 0){
		// 抽出したいデータであれば true を返す
		return true;
	}

	// 抽出しなくないデータであれば false を返す
	return false;
}
var b = a.filter(func);
 



■Vector クラスのプロパティ

Vector クラスは、以下のプロパティが使用できます。
 
プロパティ 説明
length 配列が使用している番地の数。
 
例) 配列の数を調べる

var a = Vector.< Number >([0, 1, 2, 3, 4]);
var num = a.length;
 
 




HAKUHIN's home page バナー http://hakuhin.jp/
(c) Hakuhin & 日新礼符 2002-2011 解像度1024×768以上 IE8.0以上推奨
/ 閲覧中: