2011-01-16 6 views
0
  1. ハッシュテーブルがC#で使用するハッシュ関数は何ですか?ハッシュテーブルの「プロパティ」C#

  2. テーブルのサイズは何ですか?挿入するデータに比例しますか(たとえば、データの30%以上)?それとも固定サイズですか?

  3. iは、文字列のように、1種類でハッシュテーブルを行うことができ、またはそれはalwwaysリターンだとオブジェクトタイプを取得しますか?私は、テーブルからデータを取得するたびにキャストしたくない....

+0

数3 –

+0

@Ernoのためのジェネリックに見て、私はハッシュをmeke機能を必要としています。 h(x)= x * 3 + 9のようになります。 @シュテファン、何? – aharon

+0

Google C#ジェネリックスハッシュテーブルは、辞書などの他の多くのC#オブジェクトの基礎となるオブジェクトです。 –

答えて

2

スタートを見てください。実装に関する詳細がわからない場合は.NET Reflectorを使用してください。特定のキーと値の型を持つハッシュテーブルを使用するには、System.Collections.Generic.Dictionary<TKey, TValue>を使用する必要があります。

+0

+1を 'Dictionary <,>'にリンクしています。 – Gabe

+0

私は辞書ではなくハッシュトーンを必要とします。テーブルへのアクセスはO(定数)、辞書はO(N)です! – aharon

+1

* Dictionary <(Of <(TKey、TValue>)>)クラスがハッシュテーブルとして実装されているため、キーを使用した値の取得は非常に高速で、O(1)に近いです。 "* - MSDNのドキュメント'Dictionary <,>'の場合 – mgronber

1
  1. 各クラスBEI上書きすることができObject.GetHashCodeを、。

  2. ないアイデアが、それは実装の詳細だとして、あなたは気にしてはいけません。それを知りたい場合は、サンプルプログラムを作成し、それを測定してください。しかし、次の.Netリリースでは変更される可能性があることに注意してください。

  3. Hashtable documentationの解説セクションを読むことにより、辞書