Skip to main content

動的な配列とは何ですか?

Dynamic Arrayは、複数のコンピューティングオブジェクトを単一のグループとして保持するコンピュータープログラミングで使用されるデータ構造であり、さまざまな数のオブジェクトに対応するために自由にサイズを変更できます。このグループは、単一の連続したメモリブロックに保持されるため、要素へのアクセスは効率的かつ高速です。動的配列は、使用されているコンピューター言語に応じて、ベクトルまたはリストとも呼ばれます。これらの名前にもかかわらず、リストとベクトルは配列と互いに異なる方法で実装される可能性があるため、特定のリストまたはベクトルは動的な配列ではない場合があります。標準テンプレートライブラリと呼ばれます。このクラスを裏付ける配列は、イテレーターまたはインデックスでアクセスできます。オンデマンドでサイズを変更する能力は大きな利点ですが、プログラマーを誤ったセキュリティの感覚に誘惑する可能性があります。ベクトルを裏付ける動的配列は、アクセス要求が有効であることを確認できません。静的配列と同様に、動的配列は、プログラムがそれらに割り当てられていないメモリにアクセスしようとする場合、境界チェックおよびメモリの破損の問題を持つことができます。配列内の要素はインデックスによってのみアクセスされ、配列の外側のインデックスにアクセスしようとすると、通常、メモリの破損の問題が発生しません。Java Vectorクラスは、C ++ベクタークラスとほぼ同等であり、複数のスレッドでアクセスできるように同期されていません。対照的に、ArrayListとCopyOnWritearrayListはどちらもスレッドセーフです。3つのうち、CopyonWritearrayListは、新しい値が配列に書き込まれるたびに動的配列を完全に再現するため、最も労働集約的なクラスです。特定の言語に応じて、その上に他の機能が構築される場合があります。静的配列と同様に、動的配列は、すべて同じタイプのオブジェクトである限り、内部に保存できるオブジェクトのタイプを制限しません。プログラマーは、動的配列に直接アクセスする必要はありません。それは常に、簡単に使用できるように配列をラップするクラスを通して行うことができます。これらの配列を適切に使用することで、コード内のデータ組織を備えたプログラマーを支援し、また、簡単なメンテナンスに役立つ理解可能なコードを作成することもできます。