当前位置: 首页 > 面试题库 >

为什么hashcode()返回一个整数而不是长整数?

柳灿
2023-03-14
问题内容

在Java中,hashcode()方法返回整数而不是long。有什么具体原因吗?


问题答案:

那么,一个良好的理由是,hashCode基于数据结构(HashSetHashMap)使用一个数组来存储箱,并且阵列被限制为int索引。long
hashCode()如果必须将其映射到int数组索引,那么您将一无所获。



 类似资料:
  • 我使用的是Laravel,并有一个查询,它使用列的进行选择: 我已经安装了mysqldn,AFAIK Laravel使用。 但是是一个字符串,不管列是什么类型。(它是一个整数列) 另外,如果我这样做: < code>foo_bar以整数形式返回。

  • 问题内容: 为什么不: 代替: 获得唯一哈希码的更高机会? 问题答案: 因为数组的最大长度为。 由于的主要用途是确定将对象插入/ 的后备数组中的哪个插槽,因此hashcode> 将无法存储在该数组中。

  • 问题内容: 有人可以解释一下吗(直接来自文档-强调我的): math.ceil(x) 以浮点数形式 返回 x 的上限,最小 整 数值大于或等于x。 math.floor(x) 以浮点数形式 返回 x 的下限,即小于或等于x的最大 整 数值。 为什么会和回报花车当它们被定义应该算整数? 编辑: 好吧,这有一些很好的论据来说明为什么它们 应该 返回浮点数,而当@jcollado指出它们实际上 _确实_

  • 问题内容: 如果我想对整数进行位操作,如何将其加载到?中?如何将其转换回int或long?我不太担心它的大小,它总是32或64位长。我只是想使用,,,和方法,而不是位运算符,但我无法找到一个简单的方法来初始化位集以数字类型。 问题答案: 以下代码从一个长值创建一个位集,反之亦然: 编辑:现在两个方向,@leftbrain:原因,你是对的

  • 我已经看到变量的原始版本和对象版本之间有以下映射: 浮- 所以,对他们所有人来说,唯一的区别就是世界上的第一个字母。我想知道为什么这个规则不适用于变成整数(而不是int)的int和变成字符而不是(char)的char。 我不知道这是否是问这个问题的正确地方,但我真的很想知道这个选择是否有原因,即使因为我教孩子们java,他们也经常问我同样的问题。

  • 问题内容: 在Java 8中,有一个新方法可返回代表字符代码的)流。我想很多人会期待这里有s 流。这样设计API的动机是什么? 问题答案: 正如其他人已经提到的那样,其背后的设计决策是防止方法和类的爆炸式增长。 尽管如此,我个人还是认为这是一个非常糟糕的决定,并且鉴于他们不想做出合理的替代方法,我应该考虑: ,它会提供一系列字符,这会降低性能。 ,该代码将用于性能代码。 但是,我认为,这个答案应该