7.Enumeration | |
Enumerationは、クラスではなくインターフェースである。Enumerationは、VectorやHashtableのようなコンテナ(データ格納クラス)に格納されているデータを最初から最後まで次々にアクセスしたい場合に使用される。 例えば、ベクタのすべての要素を出力するには、次のようにする。 |
|
for (Enumeration e = v.elements( ) ; e.hasMoreElements( ) ;) { System.out.println(e.nextElement( )); } |
|
import java.util.Enumeration |
|
メソッド | |
boolean | hasMoreElements() 次の項目がある場合はtrueを、ない場合はfalseを返す。 |
Object | nextElement() 次の項目を返す。次がない場合にはNoSuchElementExceptionが投げられる。 |
sample) Enumerationクラス | |
import java.io.*; imoprt java.util.*; class Test{ for ( Enumeration e = table.elements( ) ; e.hasMoreElements( ) ; ) |
|
C:\Java\>java Test map リンゴ 夏 手 ペン C:\Java\> |
Category: Java
14-5.Stack
5. Stack | |
Stackはコンテナの最後にデータを追加し、コンテナの最後から取得する構造である。いわゆる先入れ後出し(FILO)。 Vectorクラスの子クラスであり、Vectorクラスのメソッドが使える。しかし、Stack本来の使い方をするのであれば、ここで説明する数個のメソッドしか使わないのがベター。 |
|
import java.util.Stack |
|
コンストラクタ | |
Stack()
唯一のコンストラクタ |
|
メソッド | |
boolean | empty() Stackの中が空ならTrueを、何かが登録されていればFalseを返す |
Object | push(Object item) itemをスタックに登録する。itemがそのまま戻り値として戻る。addElementと全く同じ。 |
Object | addElement(Object item) itemをスタックに登録。itemがそのまま戻り値として戻りる。pushと全く同じ働きを持つ。 |
Object | pop() 最後に登録したitemが戻る。登録されていたitemは消去され、Stackが空の場合はEmptyStackExceptionが投げられる。 |
Object | peek() 最後に登録したitemが戻る。登録されていたitemは消去されない。Stackが空の場合はEmptyStackExceptionが投げられる。 |
int | search(Object o) oが登録されている場所をindexで返す。indexは1から始まり、oが登録されていない場合は-1が戻る。 |
sample) Stackクラス | |
import java.io.*; imoprt java.util.*; class Test{ //改行 //pop |
|
C:\Java\>java Test push : 0 push : 1 push : 2 push : 3 push : 4 push : 4 push : 3 push : 2 push : 1 push : 0 C:\Java\> |
14-10.Object
10.Object | |
Objectクラスはすべてのクラスの親クラスである。このクラスで定義されているメソッドはすべてサブクラスであるすべてのクラスで使用できる。逆に言えばこのクラスのメソッドは必要に応じてサブクラスでオーバーライドする必要があるということである。特にequalsメソッド、toStringメソッド、cloneメソッドはオーバーライドすることをおすすめする。 |
|
import java.langObject |
|
コンストラクタ | |
Object() 通常このクラスのインスタンスを作成する必要はない。 |
|
メソッド | |
pretected Object |
clone() 自分自身の複製を作成する。例えばメンバー変数がint型などのプリミティブ型の場合はそれらをコピーするだけでよいが、メンバー変数に他のクラスのインスタンスがある場合、そのインスタンスの参照先をコピーするだけでよいか、それともそのインスタンスの複製をそのクラスのcloneメソッドを呼び出して作成する必要があるかは、クラスによって異なり、これはプログラマに任される。 cloneメソッドを実装した場合はclone可能であることを示すために、Cloneableインターフェースをインプリメントする。逆にCloneableをインプリメントしていないクラスのcloneメソッドを呼ぼうとした場合にはCloneNotSupportedExceptionが投げられる。 |
boolean | equals(Object obj) 引数で与えられたインスタンスと自分自身が同じならばtrueを返す。クラスによって同じという概念が異なる場合がある。例えばメンバー変数にあるクラスが定義されている場合はその参照先が同じ(==演算子を使用する)ならば「同じ」と定義するのか、その中身が同じ(そのクラスの equalsメソッドを呼び出す)ならば「同じ」と定義するのかは、プログラマに任される。 |
String | toString() このクラスの文字列表記を定義します。例えばデバッグ情報などを表示させたい場合には、このクラスのメンバー変数の値をすべて文字列に変換する。 オーバーライドしない場合は、クラス名とそのインスタンスのハッシュコード(16進数)が返されます。ハッシュコードとは、すべてのインスタンスに固有の数字で、実行される度に異なる値になることもある。プラットフォームによって異なりますが、Windowsの場合はそのインスタンスが生成されたメモリアドレスがそのままハッシュコードになる。 |
void | notify() このオブジェクトのモニターで待機中のスレッドを 1 つ再開する。詳しくは スレッド間通信参照 |
void | notifyAll() このオブジェクトのモニターで待機中のスレッドをすべて再開する。詳しくは スレッド間通信参照 |
void | wait() こ他のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すまで、現在のスレッドを待機させる。詳しくは スレッド間通信参照 |
void | wait(long timeout) こ他のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すか、指定された時間(単位はミリ秒)が経過するまで、現在のスレッドを待機させる。詳しくは スレッド間通信参照 |