C# Java HashMap 相当の質問する

C# Java HashMap 相当の質問する

Java の世界から C# の世界に移った場合、HashMap に相当するものはありますか? ない場合は何をお勧めしますか?

ベストアンサー1

DictionarySystem.Collections.Generic.Dictionaryおそらく最も近いでしょう。System.Collections.Generic.IDictionaryインターフェース(Java のインターフェースに似ていますMap)。

知っておくべきいくつかの注目すべき違いは次のとおりです。

  • アイテムの追加/取得
    • JavaのHashMapには、アイテムを設定/取得するためのメソッド putとメソッドがあります。get
      • myMap.put(key, value)
      • MyObject value = myMap.get(key)
    • C#の辞書は[]アイテムの設定/取得にインデックス を使用します
      • myDictionary[key] = value
      • MyObject value = myDictionary[key]
  • nullキー
    • JavaではHashMapnullキーが許可されます
    • .NETでは、nullキーを追加しようとするとDictionaryエラーが発生します。ArgumentNullException
  • 重複キーの追加
    • Java はHashMap既存の値を新しい値に置き換えます。
    • .NET では、インデックスをDictionary使用すると、既存の値が新しい値に置き換えられます[]Addメソッドを使用すると、代わりに がスローされますArgumentException
  • 存在しないキーを取得しようとしています
    • Java はHashMapnull を返します。
    • .NETではDictionaryがスローされますKeyNotFoundExceptionTryGetValue[]これを回避するには、インデックスの代わりに次の方法を使用します。
      MyObject value = null; if (!myDictionary.TryGetValue(key, out value)) { /* key doesn't exist */ }

DictionaryのにはContainsKey前の 2 つの問題に対処するのに役立つ方法です。

おすすめ記事