Javaデータ構造: 従来クラス(Vector/Stack/Hashtable等)とコレクションフレームワーク概要
Javaユーティリティパッケージが提供するデータ構造は非常に強力で、幅広い機能を実行します。これらのデータ構造は以下のインターフェースとクラスで構成されます。
- Enumeration
- BitSet
- Vector
- Stack
- Dictionary
- Hashtable
- Properties
これらのクラスはすべて現在レガシー(旧来)であり、Java 2で新しいフレームワークであるコレクションフレームワークが導入されました。これは次章で説明します。
Enumerationインターフェース
Enumerationインターフェース自体はデータ構造ではありませんが、他のデータ構造の文脈では非常に重要です。Enumerationインターフェースは、データ構造から連続する要素を取得する手段を定義します。
例えば、EnumerationはnextElementというメソッドを定義し、複数の要素を含むデータ構造で次の要素を取得するために使用されます。
このインターフェースの詳細については「The Enumeration」を参照してください。
BitSetクラス
BitSetクラスは、個別に設定およびクリアできるビットまたはフラグのグループを実装します。
このクラスは、ブール値のセットを管理する必要がある場合に非常に便利です。各値にビットを割り当て、適切に設定またはクリアするだけです。
詳細については「The BitSet」を参照してください。
Vectorクラス
Vectorクラスは従来のJava配列に似ていますが、新しい要素を収容するために必要に応じて拡張できます。
配列と同様に、Vectorオブジェクトの要素にはベクトルへのインデックスでアクセスできます。
Vectorクラスを使用する利点は、作成時に特定のサイズに設定することを心配する必要がないことです。必要に応じて自動的に縮小・拡大します。
詳細については「The Vector」を参照してください。
Stackクラス
Stackクラスは後入れ先出し(LIFO)の要素スタックを実装します。
スタックを垂直に積まれたオブジェクトのスタックとして文字通り考えることができます。新しい要素を追加すると、他の要素の上に積まれます。
スタックから要素を取り出すと、トップから取り出されます。つまり、スタックに最後に追加した要素が最初に取り出されます。
詳細については「The Stack」を参照してください。
Dictionaryクラス
Dictionaryクラスは、キーを値にマッピングするデータ構造を定義する抽象クラスです。
これは、整数インデックスではなく特定のキーでデータにアクセスしたい場合に便利です。
Dictionaryクラスは抽象クラスであるため、キーマッピングデータ構造のフレームワークのみを提供し、具体的な実装は提供しません。
詳細については「The Dictionary」を参照してください。
Hashtableクラス
Hashtableクラスは、ユーザー定義のキー構造に基づいてデータを整理する手段を提供します。
例えば、アドレスリストのハッシュテーブルでは、人の名前ではなくZIPコードなどのキーに基づいてデータを格納およびソートできます。
ハッシュテーブルに関するキーの具体的な意味は、ハッシュテーブルの使用方法と含まれるデータに完全に依存します。
詳細については「The Hashtable」を参照してください。
Propertiesクラス
PropertiesはHashtableのサブクラスです。キーがStringで値もStringである値のリストを維持するために使用されます。
Propertiesクラスは多くの他のJavaクラスで使用されます。例えば、環境値を取得する際のSystem.getProperties()の戻り値の型です。
詳細については「The Properties」を参照してください。
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Javaカプセル化マスター:データ隠蔽の実践ガイド
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除
- Javaデータ構造: 従来クラス(Vector/Stack/Hashtable等)とコレクションフレームワーク概要