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