Category: Develop

14-4.Vector

 
 

4. Vector 
Vectorは可変長の配列です。配列は一度newするとその大きさを変更することはできない。もしサイズを大きくしたい場合は新しいサイズでnewしなおし、System クラスのarraycopyメソッドを用いてコピーする必要があった。Vectorクラスでは、サイズを気にせず必要な時にサイズを変更できる配列が提供される。 
ただし、Vectorで管理できるのはクラスのインスタンスと配列のみで、プリミティブ型は格納できない。例えばint型の数字を格納したい場合は後述するIntegerクラスのインスタンスにして格納する必要がある。 

import java.util.Vector

メンバー
protected
int
capacityIncrement

VectorのサイズがVectorの容量を超えるときに自動的に増やされる量

protected
 int
elementCount

Vector オブジェクト内の有効な要素数

protected
 Object
elementData

Vectorの要素が格納される配列バッファ

コンストラクタ
Vector() 

空のVectorを作成し、その内部データ配列のサイズが10で、その標準的な増分がゼロであるようにする

Vector(int initialCapacity) 

指定された初期容量、および増加量がゼロである、空のVectorを作成する 

Vector(int initialCapacity,int capacityIncrement) 

指定された容量と増加量で空のVectorを作成する 

メソッド
 
void addElement(Object obj)
      指定の要素をVectorの最後に追加し、サイズを1増やす
int capacity()
      Vectorの新しい容量を返す
Object clone()
      Vectorをコピーします。中身のObjectが複製されるのではなく参照がコピーされるだけ
boolean contains(Object elem)
      指定されたオブジェクトがVectorの要素であるかどうかを判定する。判定はそのObjectクラスのequalsメソッドが利用され、含まれていればtrueが返される。
boolean containsAll(Collection c)
      Vectorが指定の Collection 内のすべての要素を保持する場合に true を返す
void copyInto(Object[] anArray)
      Vectorの要素を、指定された配列にコピーする
Object elementAt(int index)
      指定されたインデックスの要素を返す
Enumeration elements()
      Vectorの要素のリストを返す
boolean equals(Object o)
      指定された Object がVectorと等しいかどうかを比較する。2つのVectorが同じ順序で同じ参照を持っていればtrueが返される。
Object firstElement()
      Vectorの最初の要素(インデックス0の項目)を返す
int indexOf(Object elem)
      equalsメソッドを使って等しいかどうかを判定しながら、指定された引数と同じ内容の要素を先頭から検索します。見つからない場合は-1が返される。
int indexOf(Object elem,int index) 
      equalsメソッドを使って等しいかどうかを判定しながら、指定された引数と同じ内容の要素を指定されたindexから検索する。見つからない場合は-1が返される。
void insertElementAt(Object obj, int index)
      Vectorの指定されたindexに、指定されたオブジェクトを要素として挿入する
boolean isEmpty()
      Vectorが要素を持たなければtrueを返す
Object lastElement()
      Vectorの最後の要素を返す
int lastIndexOf(Object elem)
      Vectorを末尾から検索して、指定されたオブジェクトと同じ内容の要素のインデックスを返し、見つからない場合は-1が返される。
int lastIndexOf(Object elem, int index)
      指定されたインデックスから後向きに指定のオブジェクトを検索し、検出されたインデックスを返す。見つからない場合は-1が返される。
void removeAllElements()
      Vectorからすべての要素を削除し、サイズを0に設定する
boolean removeElement(Object obj)
      最初に検出された(最小インデックスの)引数の要素をVectorから削除する
void removeElementAt(int index)
      指定されたインデックスの要素を削除する
void setElementAt(Object obj, int index)
      Vectorの指定されたindexの要素に、指定されたオブジェクトを設定する
void setSize(int newSize)
      Vectorのサイズを設定する
int size()
      Vectorの要素数を返す
List subList(int fromIndex, int toIndex)
      この List の、fromIndex(これを含む)とtoIndex(これを含まない)の間の部分のビューを返す
String toString()
      各要素のString 表現を保持している、Vectorの文字列表現を返す
void trimToSize()
      Vectorの容量を、現在の容量にまで減らす
   
sample) Systemクラスのarraycopyメソッドと、標準出力、標準エラー出力の例
class Test {
    public static void main(Stirng args[ ]) {
         int i ;
         char c ;
         Character ch;
         Vector vect = new Vector( );

       //文字をVectorに追加していく
       for( c = 0 ; c < 26 ; c++ )
            //プリミティブ型(ここではchar型)はそのままではVectorに入れられない
            //そこで、Charactor型にする必要がある。
            vect.addElement( new Character( ( char ) ( 'A' + c ) ) );

         //配列の中身を表示
         disp(vect);

               //’Q’という文字は何番目に入っている?
           c = 'Q' ;
           i  = vect.index0f(new Character(c) ) ;
           System.out.println( i >=0 ?
                                     c + " は " + i + " 番目に入っています。 ":
                                     c + " はvectの中に入っていません。 ")

               //10番目は何?
           i = 10;
           ch = (Character)vect.elementAt( i );
           System.out.println( i + "番目には " + ch + " が入っています");
     }

       //配列の中身を表示するメソッド
     public static void disp(Vector vect){
          System.out.print("vector ");
          int nSize = vect.size( )

             //配列の中身表示
          for( int i = 0 ; i < nSize ; i++ )
               System.out.print(vect.elementAt( i ) );

             //改行
          System.out.println( ) ;
    }
}

C:\Java\>java Test
vector ABCDEFGHIJKLMNOPQRSTUVWXYZ
Qは16番目に入っています。
10番目にはKが入っています

C:\Java\>

14-3.System

 
 

3. System 
Systemクラスは文字通りシステムに関するメソッドとメンバーを併せたクラスである。 例えば、コンソール(DOS窓)に文字を表示させたりするためのPrintStreamインスタンスや、アプリケーション終了に関するメソッド、このプログラムが実行されてからどのくらい時間が経過したか、ガーベージコレクターに関するメソッドなどがある。

import java.lang.System

メンバ
static
PringStream
err
  「標準」エラー出力ストリーム
static
InputStream
in
  「標準」入力ストリーム
static
PrintStream
out
  「標準」出力ストリーム
メソッド
static
void
arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

指定位置で開始する指定ソース配列から、転送先配列の指定位置に配列をコピーする

static
long
currentTimeMillis()

現在時刻と協定世界時のUTC1970年1月1日午前0時との差をミリ秒で返す

static
void
exit(int status)

現在実行しているJava仮想マシンを終了する

static
void
gc()

ガーベージコレクタを実行する

static
String
getProperty()

指定されたキーによって示されるシステムプロパティを取得する

static
String
getProperty(String key,String def)

指定されたキーによって示されるシステムプロパティを取得する

static
void
runFinalization()

ファイナライズを保留しているオブジェクトのファイナライズメソッドを実行する

static
void
setErr(PrintStream err)

「標準」エラー出力ストリームを割り当てる

static
void
setIn(InputStream in)

「標準」入力ストリームを割り当てする

static
void
setOut(PrintStream out)

「標準」入力ストリームを割り当てする

   
sample) Systemクラスのarraycopyメソッドと、標準出力、標準エラー出力の例
import java.io.*;

class Test {
    public static void main(Stirng args[ ]) {
         float a[ ] = { 10.5f, 2.4f, 32.4f, -4.1f, 5.0f };
         float b[ ] = new float[a.length];

       //配列の表示
         arrayDisplay(a, b);

       //配列のコピー
         System.arraycopy( a, 0, b, 0, a.length);

       //配列の表示
         arrayDisplay( a, b);
       }

     //2つの配列を表示するメソッド
      public static void arrayDisplay( float array1[], float array2[] ){
         //2つの配列のサイズが違っていたらエラーメッセージを表示し、終了する
         if( array1.length != array2.length ){
               //通常エラーメッセージは、標準出力(System.out)ではなく
               //通常エラー出力(Stream.err)に出力する
               System.err.println("array1とarray2のサイズが違います");
               System.err.println("異常終了します");
               System..exit(-1);
         }

         //表示する部分
         for( int i = 0 ; i < array1.length ; i++ )
              System.out.println( i + ":" + array1[i] + "\t" + array2[i] );

        //改行
        System.out.println( );
   }
}

C:\Java\>java Test
0:10.5   0.0
1:2.4     0.0
2:32.4   0.0
3:-4.1   0.0
4:5.0     0.0

0:10.5   10.5
1:2.4     2.4
2:32.4   32.4
3:-4.1   -4.1
4:5.0     5.0

C:\Java\>

14-11.Number

 
 

11.Number 
 Numberクラスは数値を表すクラス(Byte,Short,Integer,Long,Integer,BigDecimal,BigInteger)の親クラスである。その名の通り数値を具象化するクラスで、他の数値の型に変換したり、文字列に変換したりする機能が備わっている。
 

import java.lang.Number

コンストラクタ
Number()
      抽象クラスなので、実際にインスタンスは作れない。
 
メソッド
byte byteValue()
      byte型に変換します。場合によって丸め込まれたり切り捨てられたりすることもある。
short shortValue()
      short型に変換する。場合によって丸め込まれたり切り捨てられたりすることもある。
int intValue()
      int型に変換する。場合によって丸め込まれたり切り捨てられたりすることもある。
long longValue()
      long型に変換する。場合によって丸め込まれたり切り捨てられたりすることもある。
float floatValue()
      float型に変換する。場合によって丸め込まれることもある。
double doubleValue()
      double型に変換する。場合によって丸め込まれることもある。