のための森林を参照してくださいcan`t: 私の数学的なプログラムが通じ反復にアイテムの巨大なコレクションを持つことになります。キー値のペアに似ている、アイテムとポインタで構成され、他のアイテム((int)アイテム、(int)ポインター)に主になります。 しかし、彼自身の上の各項目は、このような属性他のいくつかあります:HashSetの、辞書には、ArrayListのは:木について
(項目、ポインタを)、(属性、属性、属性、...)
アイテム、ポインタと属性は次のようになります頻繁に追加されます。
このサイトと他のサイトを検索すると、私はそのプログラムで使用するコレクションについてもっと迷ってしまいました。 vcskicks.comで見つかった。この時点では
辞書ソリューションが最適に動作するようです:
Dictionary<Dictionary<int,int>,Dictionary<int,int> nestedDictionary =
new Dictionary<Dictionary<int,int>,Dictionary<int,int> nestedDictionary();
や平易な言葉で:
Dictionary<Dictionary<item, pointer>,
Dictionary<attribute,attribute, ...> nestedDictionary =
Dictionary<Dictionary<item, pointer>,
Dictionary<attribute,attribute, ...>();
属性の数ではないことに注意してくださいあらかじめ定義されており、長さが異なります。また、現時点では、パフォーマンスオーバーヘッドのためにオブジェクトを使用することを躊躇しています。
ハッシュセット重複した項目が存在するため、異なる属性が存在するため、入りません。 またはハッシュセットには重複した項目がありますが、ハッシュキーは重複しませんか?混乱があるようです。
いくつかによると、以下のHashSetのは計算しません。
11011, 0001
11011, 0011
を それがする他の人によると、それは別のハッシュキーを持つことになりますので。それは私に困惑を残します。
私の質問:曖昧にされる危険が
:使用するのに最適なコレクション型は何ですか?必要に応じてストーリーにもっと喜んで追加してください。
編集:
巨人は意味:アイテムの潜在的に何百万人。すべてのアイテムにはポインタと属性があります。 一般的な使用は、特定の項目についてを検索し、ポインタを取得し、ポインタが残らなくなるまで次のポインタの項目を取得することによってになります。同時に、各項目のすべての属性が収集されます。追加は定期的に行われ、時折のみ削除されます。 ポインタ:ポインタは、それが参照するアイテムのインデックスです。 2つのアイテムがあり、最初のアイテムが2番目のアイテムにリンクされている場合、最初のアイテムは2番目のアイテムのインデックスをポインタとして持ちます。 最高は、メモリ使用量と速度として定義されます。最後に、見つかったすべてのアイテムが互いに比較されます。 例:あなたがオブジェクトのコレクションを維持する必要があるようなので、
[Item , pointer] [attribute, attribute, ...]
[11011, 1001] [ 1101, 1111 ]
[10001, 1000] [ 1110, 0101 ]
[11111, 0010] [ 1111, 1110 ]
[11011, 0001] [ 0010, 1010 ]
おかげ
単独でリンクされたリストのように聞こえます – CodesInChaos
「巨人」の大きさはどれくらいですか?一般的な使用法、多くの読書、または多くの追加/削除は何ですか?どのようなパフォーマンスが必要ですか? – RvdK
"ベスト"を定義する必要があると思います。あなたは、メモリ消費、速度、コーディングの容易さ、何かを考えていますか? –