Vector
クラスRevised: Jan./3rd/2002: Since: Jan./1st/2002
通常の配列は、宣言時に要素になり得るデータ型とその個数を決定しなければならず、その後の変更も出来ません。 Vector
クラスはオブジェクトを要素とする可変長の配列を実現します。Vector クラスは、データ構造を扱う最も原始的なクラスです。
java.lang.Object | +--java.util.AbstractCollection | +--java.util.AbstractList | +--java.util.Vector
Vector
クラスは java.util
パッケージに含まれるので、利用するファイルではパッケージをインポートしておく必要があります。
API 仕様では次のように説明されています:
Vector
クラスは、オブジェクトの可変長配列を実装します。ここには配列と同じように、整数インデックスを使ってアクセスできる要素が格納されています。しかし、Vector
のサイズは、作成後に追加および削除されたオブジェクトを格納できるように必要に応じて増やしたり減らしたりすることができます。
Vector() |
空の Vector を作成し、その内部データ配列のサイズが 10 で、その標準的な増分がゼロであるようにします。 |
Vector(Collection c) |
指定されたコレクションの反復子が返した順序で、その要素を格納する Vector を作成します。 |
Vector(int initialCapacity) |
指定された初期容量、および増加量がゼロである、空の Vector を作成します。 |
Vector(int initialCapacity, int capacityIncrement) |
指定された容量と増加量で空の Vector を作成します。 |
Vector
の要素の個数(サイズ)はその都度明確に決まっていますが、作成後も必要に応じて増減させることが出来ます。
メソッドが多いので、代表的なメソッドの名前だけ紹介しておきます。全てのメソッドの詳細な定義は API 仕様を直接ご確認ください。
要素の追加(add()
系メソッド)、挿入(insert()
系メソッド)、削除(remove()
系メソッド)、配列/文字列などへの変換、サイズ変更などのメソッドが多く定義されています。
Vector
を作成し、オブジェクトを要素に追加/挿入/削除してみます。
//java.utilパケージのインポート import java.util.*; class TestVector{ public static void main(String args[]){ //Vector のインスタンス化 Vector vec=new Vector(); System.out.println("----追加----"); //オブジェクトの作成 String obj1=new String("Hello World!"); StringBuffer obj2=new StringBuffer("こんにちは、世界!"); //要素の追加 vec.addElement(obj1); vec.addElement(obj2); //表示 System.out.println(vec); System.out.println("----挿入----"); //オブジェクトの作成 Integer obj3=new Integer(10); Double obj4=new Double(3.14); //要素の挿入 vec.insertElementAt(obj3, 1); vec.insertElementAt(obj4, 3); //表示 System.out.println(vec); //要素の削除 System.out.println("----削除----"); vec.remove(3); //表示 System.out.println(vec); } }
Vector
の要素にするオブジェクトを作るために、String
クラス、 StringBuffer
クラス、ラップクラスの Integer
と Double
をインスタンス化しました。
C:\Java>javac TestVector.java C:\Java>java TestVector ----追加---- [Hello World!, こんにちは、世界!] ----挿入---- [Hello World!, 10, こんにちは、世界!, 3.14] ----削除---- [Hello World!, 10, こんにちは、世界!]
Vector
の各要素はオブジェクトであり、任意の型のオブジェクトを持たせることが出来ます。インタフェース、キャストなどを組み合わせるといろいろなことが出来そうです。