Java 为什么hashcode设计为返回int

Java 为什么hashcode设计为返回int,java,hashcode,Java,Hashcode,hashcode似乎总是返回int。现在,由于IntMax,这似乎是一个限制因素。现在有人会说,这样我们就不会有这么多的对象,因为它会导致堆溢出等。但是如果我们选择double而不是int,那么我们可以在更大程度上保证hashcode对于不同的对象不会是唯一的 哈希代码不需要是唯一的。这就是为什么它们是哈希代码。用于哈希算法。它们不需要唯一的键。如果您担心的话,为什么是double而不是long?(相关:)我道歉它是一个复制品,我想问为什么int?你希望它们是独特的对象,你认为是不同的,否则好运

hashcode似乎总是返回int。现在,由于IntMax,这似乎是一个限制因素。现在有人会说,这样我们就不会有这么多的对象,因为它会导致堆溢出等。但是如果我们选择
double
而不是int,那么我们可以在更大程度上保证hashcode对于不同的对象不会是唯一的

哈希代码不需要是唯一的。这就是为什么它们是哈希代码。用于哈希算法。它们不需要唯一的键。

如果您担心的话,为什么是
double
而不是
long
?(相关:)我道歉它是一个复制品,我想问为什么int?你希望它们是独特的对象,你认为是不同的,否则好运使用它们在散列集合…@ SuffePopeNo.你希望它们是不同的对象是不同的。这不是一回事,很公平;我的意思是对于这种类型的对象和当前运行的程序来说是独一无二的,但是“独特”是一种更简洁的说法:)。@Space\u Pope再次强调,不是。“独特”和“独特”的意思完全不同。其中一个并不是另一个“更简洁的表达方式”。你只是误用了“独一无二”这个词。