C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#での辞書とハッシュテーブルの違い


ハッシュテーブルは辞書よりも低速です。強く型付けされたコレクションの場合、辞書コレクションの方が高速です。

ハッシュテーブル

ハッシュテーブルクラスは、キーのハッシュコードに基づいて編成されたキーと値のペアのコレクションを表します。キーを使用してコレクション内の要素にアクセスします。

例を見てみましょう-

using System;
using System.Collections;

namespace Demo {
   class Program {
      static void Main(string[] args) {
         Hashtable ht = new Hashtable();

         ht.Add("E001", "Tom");
         ht.Add("E098", "Amit");
         ht.Add("E110", "Jack");

         ICollection key = ht.Keys;

         foreach (string k in key) {
            Console.WriteLine(k + ": " + ht[k]);
         }
         Console.ReadKey();
      }
   }
}

出力

E001: Tom
E098: Amit
E110: Jack

辞書

辞書は、C#のキーと値のコレクションです。 Dictionary は、System.Collection.Generics名前空間に含まれています。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {

      IDictionary<int, int> dict = new Dictionary<int, int>();
      dict.Add(1,234);
      dict.Add(2,489);
      dict.Add(3,599);
      dict.Add(4,798);
      dict.Add(5,810);
      dict.Add(6,897);
      dict.Add(7,909);

      Console.WriteLine("Dictionary elements: "+dict.Count);
   }
}

出力

Dictionary elements: 7

  1. JavaでのHashTableとConcurrentHashMapの違い

    並行ハッシュマップは、jdk1.5で導入されたクラスです。同時ハッシュマップは、マップの追加または更新中にフラグメントと呼ばれるバケットレベルでのみロックを適用します。したがって、同時ハッシュマップを使用すると、マップへの読み取り操作と書き込み操作を同時に実行できます。 HashTableは、Jdk1.1で導入されたスレッドセーフなレガシークラスです。これは、Mapインターフェースの基本実装です。 nullキーと値は許可されません。本質的に同期されているため、2つの異なるスレッドが同時にアクセスすることはできません。ハッシュテーブルは順序を維持しません。 Sr。いいえ。 キー

  2. GoとJavaの違い。

    行く Goは手続き型プログラミング言語です。プログラムはパッケージを使用して組み立てられます。動的言語に似たパターンを採用する環境をサポートします。 Java Javaはオブジェクト指向プログラミング言語です。 Javaは静かで高速、信頼性が高く、安全です。最も広く使用されている言語でもあります。 GoとJavaの重要な違いは次のとおりです。 Sr。いいえ。 キー 移動 Java 1 タイプ Goは手続き型プログラミング言語であり、動的言語と同様のパターンをサポートしています。 Javaはオブジェクト指向プログラミング言語です。 2 クラスのサポート