クラス配列とは
オブジェクト指向のコンピュータープログラミングでは、クラス配列は2種類のデータ構造のいずれかを参照できます。 一部のプログラマは、この用語を使用して、特定のクラスのオブジェクトインスタンスである要素で構成される標準配列データ型を表します。 また、スカラー配列の代わりに使用されるラッパーオブジェクトとも呼ばれる、クラス配列のカプセル化されたオブジェクトを使用して、配列の管理に使用できるさまざまなメソッドを作成することもできます。 より複雑な機能があるかもしれませんが、ラッパー配列クラスは、整数や文字などの他のスカラーデータ型のラッパーオブジェクトと概念的には実際には違いはありません。 どちらの場合も、構造はクラスをサポートするオブジェクト指向プログラミング言語のコンテキスト内でのみ使用できます。
クラス配列の最初の定義は、単一の特定のクラスからインスタンス化されたオブジェクトを保持するために宣言されている標準配列データ型としてそれを識別します。 これは一般に、一連のオブジェクトを保持する場合、特にオブジェクトの最大数がわかっているために配列が過剰な量の要素で宣言されていない場合に行われます。 オブジェクト指向プログラミングの多態性メカニズムは、汎用スーパークラスを保持できるため、クラス配列の使用が非常に動的になる可能性があることを意味します。さまざまな実装にもかかわらず、さまざまなサブクラスを要素として保持できます。 ただし、クラス配列を使用する場合の複雑さの1つは、要素の数が不明で、配列の定義サイズより大きくなるか、非常に小さくなって、無駄なメモリ領域が配列に割り当てられる場合に発生します。 解決策は、サイズ変更できないスカラー配列の代わりに、ベクトルや配列リストなどのコレクション型オブジェクトを使用することです。
クラス配列の2番目の定義は、スカラー配列を含むオブジェクトですが、配列を操作および変更するためのいくつかのメソッドも提供します。 一部の言語は、クラス配列ラッパー内に非常に効率的なソートおよび検索アルゴリズムを実装しています。 クラスとして実装された配列を使用するもう1つの利点は、特に基本配列クラスが汎用オブジェクトクラスの子孫である場合、クラスをさまざまな関数やメソッドで簡単に受け渡しできることです。 クラス配列は、多くの場合、配列リストやハッシュテーブルなど、プログラミングライブラリの他のタイプの配列ベースのクラスの基礎になります。 さらに、一部の言語では配列クラスを拡張できます。つまり、ユーザーはクラスのコア機能を保持しながら、より特殊な実装で基本メソッドの一部を再定義できます。