Matzにっきで取り上げられた MurmurHash を Java で書いてみた。 もともとのソースだと C の unsigned int でハッシュ値を計算していたので、Java では long で計算。 Java の int は signed だから桁を増やしたんだけど、 そのせいで 32 bit を超えた部分についてはマスクしてやる必要がでてしまった。 0xffffffffL でマスクするのはなんか不恰好だし遅いよなぁ…。 もうちょっとなんとかすべきかも。 一応、C で計算したのと同じハッシュ値が返る事は確認済み。 import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.nio.ByteOrder; public class MurmurHash { /** * @par
![MurmurHash を Java で書いてみた - P2Pとかプログラミング全般とか](https://cdn-ak-scissors.b.st-hatena.com/image/square/df3a50c14b465108d37d0f484920317dd74971fb/height=288;version=1;width=512/http%3A%2F%2Fu.xgoo.jp%2Fimg%2Fsns%2Fblog.png)