タグ付けされた質問 「hashset」

HashSetは、コレクション内の要素の比較を可能にする操作をカプセル化します。HashSetは、コレクション内の重複する一意の要素を決定するために頻繁に使用されます。

9
ConcurrentHashMapに対するConcurrentHashSetがない理由
HashSetはHashMapに基づいています。 HashSet<E>実装を見ると、すべてがで管理されていHashMap<E,Object>ます。 <E>のキーとして使用されますHashMap。 そして、それHashMapはスレッドセーフではないことを知っています。そのためConcurrentHashMap、Java を使用しています。 これに基づいて、なぜ私たちは?に基づくべきConcurrentHashSetを持っていないのか混乱していConcurrentHashMapます。 他に欠けているものはありますか?Setマルチスレッド環境で使用する必要があります。 また、自分で作成したい場合はConcurrentHashSet、HashMapto ConcurrentHashMapを置き換えて残りをそのままにすることでそれを実現できますか?

13
ハッシュセットとツリーセット
私はいつも木を愛してきましO(n*log(n))た。ただし、私がこれまでに知っているすべてのソフトウェアエンジニアから、なぜを使用するのかがはっきりと尋ねられましたTreeSet。CSのバックグラウンドから、私はあなたが何を使うかはそれほど重要ではないと思います、そして私はハッシュ関数とバケット(の場合Java)をいじくり回す必要はありません。 どの場合に私はHashSetオーバーを使用する必要がありTreeSetますか?
496 java  hashset  treeset 

4
定義:HashSetとは何ですか?
HashSet C#HashSetデータ構造は、.NET Framework 3.5で導入されました。実装されているメンバーの完全なリストは、HashSet MSDNページにあります。 どこで使用されていますか? なぜそれを使いたいのですか?
420 c#  hashset 



19
HashSetとHashMapの違いは?
別に事実からHashSet重複する値を許可しない、の違いは何であるHashMapとはHashSet? 私は賢明な実装を意味しますか?どちらもハッシュテーブルを使用して値を格納するため、少しあいまいです。

2
HashSet <Point>がHashSet <string>よりもはるかに遅いのはなぜですか?
重複を許可せずにいくつかのピクセル位置を保存したかったので、最初に頭に浮かぶのは、HashSet&lt;Point&gt;または同様のクラスです。しかし、これはのようなものに比べて非常に遅いようHashSet&lt;string&gt;です。 たとえば、次のコード: HashSet&lt;Point&gt; points = new HashSet&lt;Point&gt;(); using (Bitmap img = new Bitmap(1000, 1000)) { for (int x = 0; x &lt; img.Width; x++) { for (int y = 0; y &lt; img.Height; y++) { points.Add(new Point(x, y)); } } } 約22.5秒かかります。 次のコード(明らかな理由からこれは適切な選択ではありません)は1.6秒しかかかりません。 HashSet&lt;string&gt; points = new HashSet&lt;string&gt;(); using (Bitmap …


10
HashSetとLinkedHashSet
それらの違いは何ですか?そんなこと知ってる LinkedHashSetは、すべての要素にわたって二重にリンクされたリストを維持する、HashSetの順序付きバージョンです。反復順序を気にする場合は、HashSetの代わりにこのクラスを使用してください。HashSetを反復処理する場合、順序は予測できませんが、LinkedHashSetを使用すると、要素が挿入された順序で要素を反復処理できます。 しかし、LinkedHashSetのソースコードには、HashSetの呼び出しコンストラクターしかありません。では、二重リンクリストと挿入順序はどこにあるのでしょうか。

8
HashSet / HashMapに重複する値を追加すると、以前の値が置き換えられますか
以下のコードを検討してください: HashSet hs = new HashSet(); hs.add("hi"); -- (1) hs.add("hi"); -- (2) hs.size()HashSet重複を許可しないので1を与えるため、1つの要素のみが保存されます。 重複した要素を追加するかどうかを知りたい場合、前の要素を置き換えますか、それとも単に追加しませんか? また、HashMap同じケースを使用するとどうなりますか?


4
HashSetは要素が等しいかどうかをどのように比較しますか?
私はクラスがありIComparableます: public class a : IComparable { public int Id { get; set; } public string Name { get; set; } public a(int id) { this.Id = id; } public int CompareTo(object obj) { return this.Id.CompareTo(((a)obj).Id); } } このクラスのオブジェクトのリストをハッシュセットに追加すると、次のようになります。 a a1 = new a(1); a a2 = new a(2); HashSet&lt;a&gt; …
127 c#  hashset 


5
HashSet <T>対Dictionary <K、V>で、アイテムが存在するかどうかを検索する時間を検索する
HashSet&lt;T&gt; t = new HashSet&lt;T&gt;(); // add 10 million items Dictionary&lt;K, V&gt; t = new Dictionary&lt;K, V&gt;(); // add 10 million items. どっちの.Contains方が早く戻るの? 明確にするために、私の要件は、データ構造内に存在するかどうかを確認する必要があるオブジェクトが1,000万個(実際には文字列)あることです。私は決して反復しません。

7
.NETで一意のアイテムのみを許可するコレクション?
重複するアイテムを追加できないC#のコレクションはありますか?たとえば、愚かなクラスの public class Customer { public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public override int GetHashCode() { return (FirstName + LastName + Address).GetHashCode(); } public override bool Equals(object obj) { Customer C = obj as Customer; …
103 c#  set  hashset 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.