2017-02-08 4 views
0

これで、pythonのハッシュテーブルの実装について知りました。これは辞書です。だからここ Javascript Python辞書の実装

は私が間違っている場合、私は今のところ、私を修正してください理解して何をしている:

  1. 辞書は、基本的には、キーと値のペアを含む構造化データです。
  2. キーを検索する場合は、dict [key]を直接呼び出すことができます。これは、Pythonがキー上で特定のハッシュ関数を実行するために可能です。ハッシュ結果は、辞書内の値のインデックスです。この方法では、リストを反復する代わりに、ハッシュ関数を実行した直後に値を取得できます。
  3. ハッシュテーブルが最大サイズの2/3を満たしている場合、Pythonはハッシュテーブルを「バケット」の量を増やして更新します。
  4. Pythonはすべての「バケット」に1つのエントリしか持たないようにします。そのため、ルックアップのパフォーマンスは最適になり、繰り返しは必要ありません。

私の最初の質問は、私はPython辞書を正しく理解していますか?

第2に、javascriptオブジェクトには、これら4つの機能もすべて含まれていますか?そうでなければ、辞書/ハッシュテーブルの一般的な組み込みJavaScript実装がありますか?

+0

JavaScriptオブジェクトをdictsとして悪用しないでください。より適切な['Map'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)と[ 'WeakMap'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) – naomik

答えて

0

JavaScriptオブジェクトは辞書として使用できますが、JavaScriptマップ実装の詳細についてはMapを参照してください。いくつかの重要なポイントは以下のとおりです。

  • Objectプロトタイプは、潜在的に
  • オブジェクトのキーは文字列や記号することができ、キーの衝突を引き起こす可能性があります。マップキーは任意の値にできます。
  • Map.prototype.sizeには、オブジェクトの持つ「マップ」エントリの数を直接的に判断する手段はありません。

意味的には、意味的にコレクション(連想配列)を作成する場合は、マップを使用します。格納する値の種類が異なる場合は、Objectを使用します。