This commit is contained in:
Looly
2024-03-18 16:22:46 +08:00
parent a34cb71bc0
commit de6eb1deea
4 changed files with 12 additions and 22 deletions

View File

@@ -86,15 +86,6 @@ public class Number128 extends Number implements Comparable<Number128>{
this.leastSigBits = leastSigBits; this.leastSigBits = leastSigBits;
} }
/**
* 获取高低位数组long[0]低位long[1]:高位
*
* @return 高低位数组long[0]低位long[1]:高位
*/
public long[] getLongArray() {
return getLongArray(ByteOrder.BIG_ENDIAN);
}
/** /**
* 获取高低位数组,规则为: * 获取高低位数组,规则为:
* <ul> * <ul>

View File

@@ -542,10 +542,9 @@ public class HashUtil {
* *
* @param data 数据 * @param data 数据
* @return hash值 * @return hash值
* @since 5.2.5
*/ */
public static long[] cityHash128(final byte[] data) { public static Number128 cityHash128(final byte[] data) {
return CityHash.INSTANCE.hash128(data).getLongArray(); return CityHash.INSTANCE.hash128(data);
} }
/** /**
@@ -553,11 +552,10 @@ public class HashUtil {
* *
* @param data 数据 * @param data 数据
* @param seed 种子 * @param seed 种子
* @return hash值long[0]低位long[1]:高位 * @return hash值
* @since 5.2.5
*/ */
public static long[] cityHash128(final byte[] data, final Number128 seed) { public static Number128 cityHash128(final byte[] data, final Number128 seed) {
return CityHash.INSTANCE.hash128(data, seed).getLongArray(); return CityHash.INSTANCE.hash128(data, seed);
} }
/** /**
@@ -576,10 +574,10 @@ public class HashUtil {
* *
* @param data 数据 * @param data 数据
* @param seed 种子 * @param seed 种子
* @return hash值long[0]低位long[1]:高位 * @return hash值
*/ */
public static long[] metroHash128(final byte[] data, final long seed) { public static Number128 metroHash128(final byte[] data, final long seed) {
return MetroHash128.of(seed).hash128(data).getLongArray(); return MetroHash128.of(seed).hash128(data);
} }
/** /**

View File

@@ -135,7 +135,7 @@ public class MetroHash128Test {
@Test @Test
public void metroHash128GetLongArrayTest() { public void metroHash128GetLongArrayTest() {
final byte[] str = "我是一段测试123".getBytes(CharsetUtil.UTF_8); final byte[] str = "我是一段测试123".getBytes(CharsetUtil.UTF_8);
final long[] hash128 = MetroHash128.of(0).hash128(str).getLongArray(); final long[] hash128 = MetroHash128.of(0).hash128(str).getLongArray(ByteOrder.BIG_ENDIAN);
Assertions.assertEquals(228255164667538345L, hash128[0]); Assertions.assertEquals(228255164667538345L, hash128[0]);
Assertions.assertEquals(-6394585948993412256L, hash128[1]); Assertions.assertEquals(-6394585948993412256L, hash128[1]);
} }

View File

@@ -13,16 +13,17 @@
package org.dromara.hutool.core.util; package org.dromara.hutool.core.util;
import org.dromara.hutool.core.codec.hash.HashUtil; import org.dromara.hutool.core.codec.hash.HashUtil;
import org.dromara.hutool.core.util.ByteUtil;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.nio.ByteOrder;
public class HashUtilTest { public class HashUtilTest {
@Test @Test
public void cityHash128Test(){ public void cityHash128Test(){
final String s="Google发布的Hash计算算法CityHash64 与 CityHash128"; final String s="Google发布的Hash计算算法CityHash64 与 CityHash128";
final long[] hash = HashUtil.cityHash128(ByteUtil.toUtf8Bytes(s)); final long[] hash = HashUtil.cityHash128(ByteUtil.toUtf8Bytes(s)).getLongArray(ByteOrder.BIG_ENDIAN);
Assertions.assertEquals(0x5944f1e788a18db0L, hash[0]); Assertions.assertEquals(0x5944f1e788a18db0L, hash[0]);
Assertions.assertEquals(0xc2f68d8b2bf4a5cfL, hash[1]); Assertions.assertEquals(0xc2f68d8b2bf4a5cfL, hash[1]);
} }