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 クラス、ラップクラスの IntegerDouble をインスタンス化しました。

C:\Java>javac TestVector.java

C:\Java>java TestVector
----追加----
[Hello World!, こんにちは、世界!]
----挿入----
[Hello World!, 10, こんにちは、世界!, 3.14]
----削除----
[Hello World!, 10, こんにちは、世界!]

Vector の各要素はオブジェクトであり、任意の型のオブジェクトを持たせることが出来ます。インタフェースキャストなどを組み合わせるといろいろなことが出来そうです。



Copyright © 2001 SUGAI, Manabu. All Rights Reserved.
SEO [PR] !uO z[y[WJ Cu