13

全て -

最近出くわした特定の質問をして、驚くべきことに説得力のある答えが見つかりませんでした。

C# Hashtable (および Hashtable を内部的に使用する Dictionary) が活用する内部バッキング データ構造は何ですか?

つまり、本質的には、キーと値のペアが格納されているバケットの種類 - ArrayList、LinkedList (ここでの答えではないことはわかっています)、ツリー構造などです。

衝突戦略などを探していない - 単にハッシュコードが計算されたら - Hashtable がこの値を格納するために内部的に使用するデータ構造は?

説明や記事へのポインタは本当に役に立ちます。

4

2 に答える 2

3

System.Collections.Hashtableキー、値、および衝突情報を格納するためのカスタム構造体 (バケット) を定義し、その構造体のインスタンスの単純な配列を保持します。

System.Collections.Generic.Dictionaryの代わりにジェネリック型を使用しますが、ほぼ同じ戦略を使用しますobject。ジェネリックは、同様に機能Dictionaryしますが、非ジェネリックを使用しませんHashtable

于 2013-09-12T21:55:19.930 に答える