長さ128文字のブール文字列(「01100..001」など)(128個の0/1を意味します)があります。私は、Javaで効率的な(高速な)ハッシュ関数を探しています。これは、128ビットよりはるかに低い表現を生み出します。誰も私を助けることができる、そのようなハッシュ関数はありますか?なにか提案を ?Javaの最速ハッシュ関数
答えて
Java String
クラスの.hashCode()
メソッドを使用すると、int
が返され、非常に高速です。
BitSet
にデータを保存することをお勧めする場合は、java.util.BitSet
の.hashCode()
メソッドをPulsarが提案するように使用することができます。
私は 'String'を' BigInteger'に最初に変換し、そのために '.hashCode()'メソッドを呼び出すことを除いて言います。しかし、私はあなたが提案したように元の 'String'をハッシュするほうが速いと推測しています。なぜ16バイトを128バイトの 'String'ファイルとして保存したいのかと疑問に思っています。これはスペースの浪費のようです。 – ZeroOne
ありがとうございました。試してみるといいですね。しかし、衝突の可能性を示す文書はありますか? – Arpssss
@ ZeroOne、私はBigIntに変換してからhashcodeを呼び出すことも考えています。なぜなら、衝突が少なくなるからです。 – Arpssss
代わりにjava.util.BitSet
を使用することを検討しましたか?あなたは何をしているのかによって、はるかに簡単で効率的になる可能性がありますか? http://docs.oracle.com/javase/6/docs/api/java/util/BitSet.html .hashCode()
メソッドもあります。
ありがとうございました。試してみるといいですね。しかし、衝突の可能性を示す文書はありますか? – Arpssss
私は気づいていません。私はそれが2004年に改良されたことを知っています(バグパレードを参照してください:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4979028)、ハッシュコードの計算方法をjava doc showもちろん利用可能です。 http://docs.oracle.com/javase/6/docs/api/java/util/BitSet.html#hashCode() –
文字列のハッシュを計算する必要がある場合は、String
クラスのhashCode()
メソッドを使用します。実装に応じて、この値を迅速に計算するための最適化がいくつか行われます。 String
クラスhashCode()
方法のOpenJDKの実装例として
は、hash
属性の値をキャッシュし、一度だけ計算される必要があります。
128文字の文字列に128ビットのハッシュがあると言ったのは誰ですか? JavaのhashCode()
メソッドによって返されるすべてのハッシュは、タイプがint
であり、Javaのintsは32ビットを使用して表されます。
- 1. Javaハッシュ関数
- 2. Cの最小ハッシュ関数?
- 3. 最小完璧なハッシュ関数
- 4. Pythonハッシュ関数
- 5. ハッシュ関数は
- 6. ファイルホスティングサイトのハッシュ関数
- 7. Pythonのラムダ関数のハッシュ
- 8. Perlサブ関数のハッシュ
- 9. C#のDJBX33Xハッシュ関数
- 10. 行列へのハッシュ関数
- 11. 数値出力のPython 256bitハッシュ関数
- 12. GPU-「証明」ハッシュ関数?
- 13. 逆ボブ・ジーンズ・ハッシュ関数
- 14. 地域保全ハッシュ関数
- 15. 類似性ハッシュ関数(simhash)
- 16. ハッシュ関数djb2にはjavaバージョンがありますか?
- 17. Java言語で使用されるハッシュ関数
- 18. Pythonの最速の階乗階乗(Pochhammer関数)
- 19. MonetDBでのlead()やlag()ウィンドウ関数の最速実装
- 20. 最速の方法<RのJava
- 21. R While Loop最小二乗関数の高速化方法
- 22. Android、ファイルからSHA-1ハッシュを計算する、最速アルゴリズム
- 23. 最も速いJavaベースのJavascriptエンジン
- 24. 最速のJava Webテンプレート言語
- 25. 長いロングハッシュ関数のためのハッシュ関数?
- 26. uint32_t値のペアの可換ハッシュ関数
- 27. 3つの短絡のハッシュ関数
- 28. ハッシュ関数によるデータの分割
- 29. VB.Netのボブジェンキンス完璧なハッシュ関数
- 30. 範囲0の計算ハッシュ関数
128ビット表現で得られるゼロよりも衝突が少ないですか? – eggyal
@eggyal、ありがとう。ニースのコンセプト。それは私を助けてくれるでしょう。 :) – Arpssss
ストリングを使用して128ビットの値を格納するだけでは、ちょっとした過労、記憶の浪費、特にパフォーマンスに気を配っているようです。 – MRalwasser