Kafka中基于byte[]的murmur2 哈希算法实现
来源:互联网 发布:maven 设置java home 编辑:程序博客网 时间:2024/06/06 16:02
无需赘言,直接上代码:
/** * Generates 32 bit murmur2 hash from byte array * 根据一个byte数组产生一个32位的murmur2 hash值 * * @param data byte array to hash * @return 32 bit hash of the given array */ public static int murmur2(final byte[] data) { int length = data.length; int seed = 0x9747b28c; // 'm' and 'r' are mixing constants generated offline. // They're not really 'magic', they just happen to work well. final int m = 0x5bd1e995; final int r = 24; // Initialize the hash to a random value int h = seed ^ length; int length4 = length / 4; for (int i = 0; i < length4; i++) { final int i4 = i * 4; int k = (data[i4 + 0] & 0xff) + ((data[i4 + 1] & 0xff) << 8) + ((data[i4 + 2] & 0xff) << 16) + ((data[i4 + 3] & 0xff) << 24); k *= m; k ^= k >>> r; k *= m; h *= m; h ^= k; } // Handle the last few bytes of the input array switch (length % 4) { case 3: h ^= (data[(length & ~3) + 2] & 0xff) << 16; case 2: h ^= (data[(length & ~3) + 1] & 0xff) << 8; case 1: h ^= data[length & ~3] & 0xff; h *= m; } h ^= h >>> 13; h *= m; h ^= h >>> 15; return h; }
4 0
- Kafka中基于byte[]的murmur2 哈希算法实现
- murmur2
- 统计一个Byte中1的个数,算法尽可能高性能——C++实现
- 基于java类库的哈希算法实现
- java实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩
- c#实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩
- 计算一个BYTE中1的个数-算法
- 【算法】基于优先级的排班算法实现
- 基于hdp的kafka使用
- 基于hdp的kafka使用
- C#实现内存中字符串或byte[]的加解密
- 基于java的InputStream.read(byte[] b,int off,int len)算法学习!
- 基于java的InputStream.read(byte[] b,int off,int len)算法学习
- 基于java的InputStream.read(byte[] b,int off,int len)算法学习
- 基于java的InputStream.read(byte[] b,int off,int len)算法学习!
- java中byte(byte []), int的转换
- 基于魔兽哈希算法的Ogre资源文件扩展的设计与实现
- 基于魔兽哈希算法的Ogre资源文件扩展的设计与实现
- leetcode--求区间内的元素个数
- AdminLTE 入门教程
- linux java Cannot allocate memory
- netstat
- iOS 删除stroryboard
- Kafka中基于byte[]的murmur2 哈希算法实现
- Oracle —— 闪回查询恢复delete删除数据
- 如何用Fiddler对Android应用进行抓包
- hdu 1695 GCD
- 浅谈BI领域的数据模型设计(二)
- Java泛型 翻译泛型方法
- 每天一个linux命令(6):umask
- c#-输出参数
- MATLAB作二维傅里叶变换所需要注意和知道的东西(im2double、fft2、abs、imshow、二维傅里叶变换的物理意义)