2. データ構造 - 配列

配列の定義

  1. 相同类型要素で構成されるデータ構造です。
  2. メモリ内に要素の配列を保持し连续存储索引各要素を通じて配列内の特定の要素にアクセスします。
  3. 配列容量也就是长度会在一开始就被确定

アドバンテージ

  1. 高速アクセス: 配列の要素は連続したメモリ位置に格納されるため、添字を使用して配列のどの要素にも迅速にアクセスできます。これにより、特に要素の挿入、削除、更新などの要素を操作する場合、配列へのアクセスが非常に高速になります。

  2. 効率的なメモリ使用率: 配列内の要素は連続したメモリ位置に格納されるため、一般に配列はリンク リストなどの他のデータ構造よりもメモリ使用率が高くなります。

  3. 使いやすさ: 配列は、使いやすく、書きやすい基本的なデータ構造です。ほとんどのプログラミング言語はネイティブの配列型と添え字アクセス操作を提供しており、これにより配列の使用と操作が非常に簡単になります。

欠点がある

  1. 拡張が容易ではない: ほとんどのプログラミング言語では、配列のサイズは固定されています。さらに要素を追加する必要がある場合は、通常、元の配列から新しい配列に要素をコピーして、より大きな配列を再構築する必要があります。これにより、パフォーマンスの問題や追加のメモリ消費が発生する可能性があります。

  2. 挿入および削除操作が遅い: 配列に要素を挿入または削除する場合、後続のすべての要素を移動する必要があるため、特に配列サイズを拡張する必要がある場合にパフォーマンスの低下を引き起こす可能性があります。
    ここに画像の説明を挿入します

  3. 大規模なデータ セットの保存には適さない: 配列はメモリ内に連続して保存されるため、大規模なデータ セットを保存するときにメモリの問題が発生する可能性があります。大きな配列はシステム メモリの制限を超える可能性があり、作成できません。

jsの配列構造

配列の定義を理解すると、js の配列が非常に特殊であることがわかります。さまざまな種類のデータを格納でき、いつでも容量を拡張できるため、とても配列とは言えないようです。

実装原理
実際、js の配列は、ハッシュ テーブルを使用して実装された特別なオブジェクトとみなすことができます。
ハッシュ テーブルは、キーと値のペアの形式でデータを格納するデータ構造です。キーはハッシュ関数を通じて対応するインデックスに変換され、値は配列内の対応する位置に格納されます。ハッシュ テーブル メソッドを使用すると、JavaScript 配列の内部は実際にはハッシュ テーブルとなり、各要素はハッシュ関数を通じて異なるインデックス位置にマッピングされます。

特性
JavaScript の配列はオブジェクトを通じて実装されるため、オブジェクトのいくつかの特性があります。たとえば、数値、文字列、オブジェクト、関数など、あらゆるタイプの値を配列に格納できます。配列には他の配列やオブジェクトを含めることもでき、多次元配列や複雑なデータ構造を形成します。

もう 1 つの重要な特徴は、配列は本質的にオブジェクトであるため、オブジェクトのメソッドとプロパティの一部を継承することです。たとえば、Object.keys() を使用して配列内のキー名を取得し、Object.values() を使用して配列内の値を取得し、Object.hasOwnProperty() を使用して配列内にキーが存在するかどうかを判断できます。 。

欠点
ただし、JavaScript の配列には、従来の意味での配列と比較していくつかの欠点があることに注意することが重要です。JavaScript 配列は、根本的な実装上の理由により、特定の操作を実行するときに遅くなる可能性があります。たとえば、要素を挿入または削除する場合、メモリ領域を再割り当てして要素をコピーする必要があるため、パフォーマンスが低下する可能性があります。さらに、配列の要素は連続して格納されないため、要素へのランダム アクセスのパフォーマンスも比較的低い可能性があります。

一般に、js 配列は配列で覆われたオブジェクトと見なされますが、基礎となる API のカプセル化サポートにより、配列のいくつかの特性があり、元の配列型よりもさらに強力です。

おすすめ

転載: blog.csdn.net/qq_44473483/article/details/134814012