静的配列は配列のサイズを変えることはできませんが、ベクトルを使うと動的配列を作成することが可能です。
このクラスは使い方によってはとても素敵なクラスなのかもしれない・・・
#codeprettify{{ Vector() Vector(int n) Vector(int n,int delta) }}
1つ目のコンストラクタは10個の要素を格納できるベクトルが作成されます。
2つ目はn個の要素を格納できるベクトルが作成されます。
3つ目は初期サイズがn個でdelta個単位の要素で拡張されていきます。
例
#codeprettify{{ import java.util.*;
class VectorDemo{
public static void main(String args[]){ //ベクトルとその要素を作成する Vector vector = new Vector(); vector.addElement(new Integer(5)); vector.addElement(new Float(-14.14f)); vector.addElement(new String("Hello")); vector.addElement(new Long(120000000)); vector.addElement(new Double(-23.45e-11));
//ベクトルの要素を表示 System.out.println(vector);
//ベクトル要素を挿入する String s = new String("String to be inserted"); vector.insertElementAt(s,1); System.out.println(vector);
//ベクトルから要素を削除する vector.removeElementAt(3); System.out.println(vector); }
} }}
結果
[5, -14.14, Hello, 120000000, -2.345e-10] [5, String to be inserted, -14.14, Hello, 120000000, -2.345E-10] [5, String ro be inserted, -14.14, 120000000, -2.345E-10]
Enumerationインターフェイスはオブジェクト群に対して一定の処理を繰り返す為に使います。
このインターフェイスには2つのメソッドが定義されています。
Enumerationインターフェイスのメソッド
#codeprettify{{ boolean hasMoreElements() Object nextElement() }}
hasMoreElementsはまだ要素がある場合にTrueを返します。
そうでない場合はFalseを返します。
nextElementは次にある要素を返します。
例
#codeprettify{{ import java.util.*;
class EnumerationDemo{
public static void main(String args[]){ //ベクトルとその要素を作成する Vector vector = new Vector(); vector.addElement(new Integer(5)); vector.addElement(new Float(-14.14)); vector.addElement(new String("Hello")); vector.addElement(new Long(120000000)); vector.addElement(new Double(-23.45e-11));
//ベクトルの要素を表示する Enumeration e = vector.elements(); while(e.hasMoreElements()) { Object obj = e.nextElement(); System.out.println(obj); } }
} }}
結果
5 -14.14 Hello 120000000 -2.345E-10
Integerクラス内のメソッドを使用する例です。
例
#codeprettify{{ import java.util.*;
class IntegerMethod{
public static void main(String args[]){ Vector vec = new Vector(); vec.addElement(new Integer(12)); vec.addElement(new Integer(13)); vec.addElement(new Integer(14)); vec.addElement(new Integer(15)); vec.addElement(new Integer(16));
//キャストすることで対応 //本当はもう少しましな方法がありそうだけど Integer vec_obj = (Integer)vec.elementAt(3); System.out.println(vec_obj.toString()); System.out.println(vec_obj.shortValue()); }
} }}
結果
15 15