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

C#のInt64.GetHashCode()メソッドとは?使い方を実例付きで解説

C#におけるInt64.GetHashCode()メソッドは、そのインスタンス(64ビット符号付き整数の値)に対応するハッシュコードを返すためのメソッドです。ハッシュコードは、ハッシュテーブルなどのデータ構造でオブジェクトを効率的に管理・検索する際に利用される整数値です。

構文

Int64.GetHashCode()メソッドの構文は以下のとおりです。

public override int GetHashCode ();

使用例1

まず、基本的な使い方を見てみましょう。2つのlong型の値に対してGetHashCode()メソッドを呼び出し、それぞれのハッシュコードを取得します。

using System;
public class Demo {
   public static void Main(){
      long val1 = 8768768768;
      long val2 = 7889765555;
      Console.WriteLine("Value1 = "+val1);
      Console.WriteLine("Value2 = "+val2);
      Console.WriteLine("Are they equal? = "+val1.Equals(val2));
      Console.WriteLine("Value1 (HashCode) = "+val1.GetHashCode());
      Console.WriteLine("Value2 (HashCode) = "+val2.GetHashCode());
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Value1 = 8768768768
Value2 = 7889765555
Are they equal? = False
Value1 (HashCode) = 178834178
Value2 (HashCode) = -700169038

使用例2

続いて、0とInt64.MaxValue(64ビット整数の最大値)を使った別の例です。

using System;
public class Demo {
   public static void Main(){
      long val1 = 0;
      long val2 = Int64.MaxValue;
      Console.WriteLine("Value1 = "+val1);
      Console.WriteLine("Value2 = "+val2);
      Console.WriteLine("Are they equal? = "+val1.Equals(val2));
      Console.WriteLine("Value1 (HashCode) = "+val1.GetHashCode());
      Console.WriteLine("Value2 (HashCode) = "+val2.GetHashCode());
   }
}

出力結果

このコードを実行すると、以下の出力が得られます。

Value1 = 0
Value2 = 9223372036854775807
Are they equal? = False
Value1 (HashCode) = 0
Value2 (HashCode) = -2147483648

ポイントまとめ

  • GetHashCode()は、値そのものではなく、その値から生成されたハッシュコード(int型)を返します。
  • 同じ値であれば必ず同じハッシュコードが返されますが、異なる値が偶然同じハッシュコードになる可能性もあります。
  • ハッシュコードはDictionaryやHashSetなどのコレクションで高速な検索を実現するために内部的に利用されます。
  1. C#のUInt64.GetHashCode()メソッドとは?構文と使い方をサンプルコード付きで解説

    C#のUInt64.GetHashCode()メソッドは、現在のUInt64(符号なし64ビット整数)インスタンスに対応するハッシュコードを取得するために使用されます。ハッシュコードは、ハッシュテーブルやディクショナリなどのデータ構造において、オブジェクトを効率的に検索・管理するために利用されるint型の数値です。構文UInt64.GetHashCode()メソッドの構文は以下のとおりです。public override int GetHashCode ();このメソッドは引数を受け取らず、呼び出し元のUInt64インスタンスのハッシュコードをint型の値として返します。使用例1:基本的な使い

  2. 【C#入門】UInt16.GetHashCode()メソッドの使い方を実例付きで解説

    C#のUInt16.GetHashCode()メソッドは、現在のUInt16インスタンスに対応するハッシュコード(HashCode)を取得するために使用されます。ハッシュコードは、ハッシュテーブルなどのデータ構造でオブジェクトを効率的に管理・検索する際に活用される整数値です。構文UInt16.GetHashCode()メソッドの構文は以下の通りです。public override int GetHashCode ();このメソッドは引数を受け取らず、現在のインスタンスの値を表すint型のハッシュコードを返します。使用例1まず、基本的な実装例を見てみましょう。通常の値とUInt16.MinVal