golangでハッシュマップの複合キーを作成する方法

SeattleOrBayArea:

まず、複合キーの私の定義-2つ以上の値を組み合わせてキーを作成します。データベースの複合キーと混同しないでください。

私の目標は、pow(x、y)の計算値をハッシュテーブルに保存することです(xとyは整数です)。これは私がキーを作成する方法についてのアイデアが必要なところです。そのため、xとyが与えられると、ハッシュテーブルでそれを検索して、pow(x、y)を見つけることができます。

例えば。pow(2、3)=> {key(2,3):8}関数/ key(2,3)を取得する方法は、私が理解したいものです。

一般に、ハッシュテーブルのキーとして使用しながら、複数の値の組み合わせであるキーを処理する最良の方法は何ですか。

ありがとう

icza:

最も簡単で柔軟な方法はstruct、キーの一部として使用するすべてのデータを含め、キータイプとしてaを使用することです。

type Key struct {
    X, Y int
}

そして、それだけです。それを使う:

m := map[Key]int{}
m[Key{2, 2}] = 4
m[Key{2, 3}] = 8

fmt.Println("2^2 = ", m[Key{2, 2}])
fmt.Println("2^3 = ", m[Key{2, 3}])

出力(Go Playgroundで試してください):

2^2 =  4
2^3 =  8

仕様:マップタイプ:比較演算子==!=が完全に定義されているキーとして任意のタイプを使用でき、上記のKey構造体タイプがこれを満たします。

仕様:比較演算子:すべてのフィールドが比較可能な場合、構造体の値は比較可能です。2つの構造体の値は、対応する非空白のフィールドが等しい場合に等しくなります。

重要なことの1つ:ポインターを*Key比較するとメモリアドレスのみが比較され、ポイントされた値は比較されないため、キーの種類(例:)としてポインターを使用しないでください

また、キータイプとしてスライスではなく配列を使用することもできますが、配列は構造体ほど柔軟ではありません。詳しくは、こちらをご覧ください:Goに配列がある理由

これは、配列の場合のようになります。

type Key [2]int

m := map[Key]int{}
m[Key{2, 2}] = 4
m[Key{2, 3}] = 8

fmt.Println("2^2 = ", m[Key{2, 2}])
fmt.Println("2^3 = ", m[Key{2, 3}])

出力は同じです。Go Playgroundでお試しください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Rustでベクターのハッシュマップを作成する方法は?

分類Dev

錆びたハッシュマップのキーを結合する文字列を作成する

分類Dev

Golangのハッシュマップから値に応じてキーを取得する簡単な方法

分類Dev

Javaで動的メソッドのハッシュマップを作成する方法

分類Dev

二重キーでハッシュマップを作成する

分類Dev

ストリームでハッシュマップを使用する場合のインデックス作成

分類Dev

特定のキーを操作してオブジェクトからハッシュマップを作成する方法

分類Dev

ハッシュマップで複数のnullキーを許可する利点は何ですか?

分類Dev

Java:ハッシュマップの複合キー

分類Dev

Javaのハッシュマップは2つの重複キーを許可しているようです

分類Dev

ハッシュマップの最初のキーを取得する方法は?

分類Dev

ハッシュの複数のキーを1行で合計する

分類Dev

ハッシュの複数のキーを1行で合計する

分類Dev

Java:ハッシュマップで同じ値を持つキーのセットを取得する方法

分類Dev

Clojureで2つのハッシュマップをマージする方法は?

分類Dev

Javaでハッシュマップのキーと値に個々の数量を追加する方法

分類Dev

Javascriptで整数キーを使用して静的値のハッシュマップを初期化する方法は?

分類Dev

ハッシュマップに重複する値を持つキーを印刷する方法は?

分類Dev

Javascriptハッシュマップで座標をキーとして使用する最速の方法

分類Dev

同じキーハッシュマップの複数の値をループJavaに保存する

分類Dev

ハッシュマップ内で文字列とハッシュマップの混合値を取得する方法

分類Dev

C-ハッシュマップの同じキーに複数の値を割り当てる方法は?

分類Dev

複数の値を同じハッシュキーにプッシュする方法

分類Dev

ハッシュセットとハッシュマップのコンストラクターを作成する

分類Dev

arraylistのハッシュマップを作成する最良の方法

分類Dev

キーごとに複数の値がある場合に、ハッシュにアクセスして最小値にマップする方法は?

分類Dev

この方法でハッシュをマージする方法

分類Dev

重複するキーをハッシュマップに挿入できますか?

分類Dev

1に2つのハッシュマップを結合する方法

Related 関連記事

  1. 1

    Rustでベクターのハッシュマップを作成する方法は?

  2. 2

    錆びたハッシュマップのキーを結合する文字列を作成する

  3. 3

    Golangのハッシュマップから値に応じてキーを取得する簡単な方法

  4. 4

    Javaで動的メソッドのハッシュマップを作成する方法

  5. 5

    二重キーでハッシュマップを作成する

  6. 6

    ストリームでハッシュマップを使用する場合のインデックス作成

  7. 7

    特定のキーを操作してオブジェクトからハッシュマップを作成する方法

  8. 8

    ハッシュマップで複数のnullキーを許可する利点は何ですか?

  9. 9

    Java:ハッシュマップの複合キー

  10. 10

    Javaのハッシュマップは2つの重複キーを許可しているようです

  11. 11

    ハッシュマップの最初のキーを取得する方法は?

  12. 12

    ハッシュの複数のキーを1行で合計する

  13. 13

    ハッシュの複数のキーを1行で合計する

  14. 14

    Java:ハッシュマップで同じ値を持つキーのセットを取得する方法

  15. 15

    Clojureで2つのハッシュマップをマージする方法は?

  16. 16

    Javaでハッシュマップのキーと値に個々の数量を追加する方法

  17. 17

    Javascriptで整数キーを使用して静的値のハッシュマップを初期化する方法は?

  18. 18

    ハッシュマップに重複する値を持つキーを印刷する方法は?

  19. 19

    Javascriptハッシュマップで座標をキーとして使用する最速の方法

  20. 20

    同じキーハッシュマップの複数の値をループJavaに保存する

  21. 21

    ハッシュマップ内で文字列とハッシュマップの混合値を取得する方法

  22. 22

    C-ハッシュマップの同じキーに複数の値を割り当てる方法は?

  23. 23

    複数の値を同じハッシュキーにプッシュする方法

  24. 24

    ハッシュセットとハッシュマップのコンストラクターを作成する

  25. 25

    arraylistのハッシュマップを作成する最良の方法

  26. 26

    キーごとに複数の値がある場合に、ハッシュにアクセスして最小値にマップする方法は?

  27. 27

    この方法でハッシュをマージする方法

  28. 28

    重複するキーをハッシュマップに挿入できますか?

  29. 29

    1に2つのハッシュマップを結合する方法

ホットタグ

アーカイブ