在 Java 中散列双精度值例子:
2022-09-02 20:20:08
我想知道如何在Java中散列双精度?我已经散列了其他基元数据和对象。我以为我可以使用哈希码方法?从我所看到的来看,这看起来很复杂。我遇到了一些关于创造种子的事情。
我想知道如何做到这一点的任何想法。希望为具有双精度的类输入我的哈希码的其余部分?
我想知道我尝试在java中散列数组列表,数组和其他对象是否存在问题。我的一些类包含数组列表。
非常感谢
我想知道如何在Java中散列双精度?我已经散列了其他基元数据和对象。我以为我可以使用哈希码方法?从我所看到的来看,这看起来很复杂。我遇到了一些关于创造种子的事情。
我想知道如何做到这一点的任何想法。希望为具有双精度的类输入我的哈希码的其余部分?
我想知道我尝试在java中散列数组列表,数组和其他对象是否存在问题。我的一些类包含数组列表。
非常感谢
Double.hashCode()
complex?它基本上转换为a(这里没有魔法,毕竟它们都只是内存中的64位值),计算哈希非常简单。->转换是通过公共静态 doubleToLongBits()
完成的。这有什么复杂之处?double
long
long
double
long
Double.valueOf(42.5).hashCode(); //better answer to everything
Long.valueOf(Double.doubleToLongBits(42.5)).hashCode();
根据你需要什么,你可以用一个非常简单的方法,只是修改它。
int hash(double d) {
return d % 71; //use a prime number here
}
如果它只是为了在哈希中存储几个双精度,这应该可以做到。如果你想传播哈希,只需增加“71”