HashMapのハッシュを直接使用できますか?

ティム・ディークマン

提供されたものHashMapを使用して直接値を挿入および直接取得することは可能Hashですか?ハッシュをキャッシュできますか?

私はこのようなことをしたい:

map.insert(key, "value");

let hashed_key = {
    let mut hasher = map.hasher().build_hasher();
    key.hash(&mut hasher);
    hasher.finish()
};

assert_eq!(map.get(key).unwrap(), map.get_by_hash(hashed_key).unwrap());

遊び場

マシューM。

番号。

これは、アルゴリズムレベルでは基本的に不可能です。

設計上、ハッシュ操作は全射です。複数の要素が同じ値にハッシュされる場合があります。したがって、HashMapの実装では、ハッシュをヒントとしてのみ使用でき完全な等式比較を使用して、ヒントによって検出された要素が正しい要素であるかどうかを確認する必要があります

最高get_by_hash方法は戻ってくるIterator現在のハッシュと一致するすべての可能な要素のを。

縮退した場合については、常に返されるハッシュアルゴリズムを検討してください4(公正なサイコロの目で得られます)。どの要素が返されると思いますか?


回避策

場合キャッシングはあなたが後にしているものです、ないと言語のトリックはHashBuilder、キー自体の内部ハッシュプリハッシュ(およびキャッシュ)です。

(等価性チェックのために)完全なキーをキャッシュする必要がありますが、ハッシュは非常に単純な操作です(キャッシュされた値を返します)。

ただし、値によっては非常にコストがかかる可能性がある等価性チェックは高速化されません。

パターンをRustに適合させることはできますが、を使用する利点は失われますHashBuilder

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Rubyハッシュで「:」を使用できますか

分類Dev

ハッシュマップで再ハッシュを回避できますか?

分類Dev

ハッシュマップで再ハッシュを回避できますか?

分類Dev

express.jsはURLのハッシュセグメントを直接取得できませんか?

分類Dev

Perl 6はハッシュ以外の目的で%シジルを使用できますか?

分類Dev

その場でハッシュのハッシュを作成しますか?

分類Dev

boost :: multi_indexハッシュのようなインターフェースでラムダをハッシュ関数として使用できますか?

分類Dev

boost :: multi_indexハッシュのようなインターフェースでラムダをハッシュ関数として使用できますか?

分類Dev

Rubyを使用してハッシュ付きの文字数を数えますか?

分類Dev

Hieraでyamlファイルの配列をハッシュできますか

分類Dev

Object#hashCodeを使用してパスワードのハッシュを保存できますか?

分類Dev

ハッシュタグ「#」をアセンブリ(NASM)のコメントとして使用できますか?

分類Dev

CRC16 ハッシュの計算に CRC32 エンジンを使用できますか?

分類Dev

HashMapのキーのハッシュを「正規化」します

分類Dev

使用する指紋ハッシュを指定できません

分類Dev

MariaDB仮想列-ハッシュを取得できますか?

分類Dev

2つの異なるHashMapを使用しているときに、最初のキーセットを作成できますが、2番目のハッシュマップは作成できません

分類Dev

アセンブリを使用してキャッシュに直接アクセスできますか?

分類Dev

ハッシュマップ全体をプルして更新せずに、redisハッシュマップのセットを更新できますか?

分類Dev

履歴に影響を与えずにハッシュナビゲーションを使用できますか?

分類Dev

他の2つのハッシュの値を使用してハッシュを作成しますか?

分類Dev

Javaでハッシュマップを使用すると、同じ値のキーの量を出力できますか?

分類Dev

文字列を整数に変換できない-ハッシュ内のハッシュから値を抽出する

分類Dev

PHPでコメントするためにハッシュ記号(#)を使用できますか?

分類Dev

perlでは、ハッシュ初期化内でHEREIS表記を使用できますか?

分類Dev

どうすればハッシュマップをforeachできますか?

分類Dev

速度では、Javaハッシュマップのエントリset()を反復できますか?

分類Dev

C ++のクラス内でハッシュコードメソッドを定義できますか?

分類Dev

便利な構文でハッシュマップ内の文字列キーを検索できますか?

Related 関連記事

  1. 1

    Rubyハッシュで「:」を使用できますか

  2. 2

    ハッシュマップで再ハッシュを回避できますか?

  3. 3

    ハッシュマップで再ハッシュを回避できますか?

  4. 4

    express.jsはURLのハッシュセグメントを直接取得できませんか?

  5. 5

    Perl 6はハッシュ以外の目的で%シジルを使用できますか?

  6. 6

    その場でハッシュのハッシュを作成しますか?

  7. 7

    boost :: multi_indexハッシュのようなインターフェースでラムダをハッシュ関数として使用できますか?

  8. 8

    boost :: multi_indexハッシュのようなインターフェースでラムダをハッシュ関数として使用できますか?

  9. 9

    Rubyを使用してハッシュ付きの文字数を数えますか?

  10. 10

    Hieraでyamlファイルの配列をハッシュできますか

  11. 11

    Object#hashCodeを使用してパスワードのハッシュを保存できますか?

  12. 12

    ハッシュタグ「#」をアセンブリ(NASM)のコメントとして使用できますか?

  13. 13

    CRC16 ハッシュの計算に CRC32 エンジンを使用できますか?

  14. 14

    HashMapのキーのハッシュを「正規化」します

  15. 15

    使用する指紋ハッシュを指定できません

  16. 16

    MariaDB仮想列-ハッシュを取得できますか?

  17. 17

    2つの異なるHashMapを使用しているときに、最初のキーセットを作成できますが、2番目のハッシュマップは作成できません

  18. 18

    アセンブリを使用してキャッシュに直接アクセスできますか?

  19. 19

    ハッシュマップ全体をプルして更新せずに、redisハッシュマップのセットを更新できますか?

  20. 20

    履歴に影響を与えずにハッシュナビゲーションを使用できますか?

  21. 21

    他の2つのハッシュの値を使用してハッシュを作成しますか?

  22. 22

    Javaでハッシュマップを使用すると、同じ値のキーの量を出力できますか?

  23. 23

    文字列を整数に変換できない-ハッシュ内のハッシュから値を抽出する

  24. 24

    PHPでコメントするためにハッシュ記号(#)を使用できますか?

  25. 25

    perlでは、ハッシュ初期化内でHEREIS表記を使用できますか?

  26. 26

    どうすればハッシュマップをforeachできますか?

  27. 27

    速度では、Javaハッシュマップのエントリset()を反復できますか?

  28. 28

    C ++のクラス内でハッシュコードメソッドを定義できますか?

  29. 29

    便利な構文でハッシュマップ内の文字列キーを検索できますか?

ホットタグ

アーカイブ