无论如何,我们为什么要检查哈希值呢?

Java开发人员

如果两个对象相等,则哈希码必须相同。那为什么要进行任何检查HashMap-

 if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k)))) {

而不是简单

if ((k = e.key) == key || (key != null && key.equals(k)))) {
罗希特·贾恩(Rohit Jain)

如果两个对象相等,则哈希码必须相同。

在这种情况下,采用另一种方式:“如果两个对象的哈希码不同,则它们不能相等”

因此,这里我们只是equals()通过首先比较hashes来简化比较

由于hash是类型的int,比较2 ints并不是昂贵的操作(只需使用一条机器指令- if_icmp<cond>

另一方面,equals()用于各种对象的方法可能涉及复杂的操作,当然,与int比较相比,这使其成为昂贵的操作因此,我们只是hash比较比较早的退出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自动返回类型推断的警告:为什么无论如何return定义类型,我们都需要decltype?

来自分类Dev

为什么我们要检查n.parent == null?

来自分类Dev

为什么我们需要两次检查哈希码?

来自分类Dev

无论如何,我们从servlet知道客户端是否还在等待

来自分类Dev

无论如何,为什么要使用rem而不是px呢?

来自分类Dev

为什么我们要覆盖方法?

来自分类Dev

为什么我们要转换常量文字

来自分类Dev

为什么我们要多次擦拭磁盘?

来自分类Dev

我们为什么要守护进程?

来自分类Dev

为什么我们要初始化 webelement?

来自分类Dev

无论如何,是否要连续检查geoLocator.isLocationServiceEnabled()?

来自分类Dev

NodeJS:加密 - 为什么无论输入如何,我都会得到相同的哈希值?

来自分类Dev

为什么我们在 sql 中检查字符串值时会出错

来自分类Dev

无论如何要找出视图是什么类型的视图?

来自分类Dev

无论如何,我们可以使用ShouldMatchers在Scalatest中给出两个条件

来自分类Dev

无论如何,为什么我总是将“关闭...”作为输出?

来自分类Dev

为什么Google Chrome浏览器需要这么长时间才能刷新本地文件?无论如何要改善?

来自分类Dev

为什么我们用::访问枚举值

来自分类Dev

为什么我们使用>>从RGB获取颜色值?

来自分类Dev

为什么我们在extjs中需要childEls-在哪里使用呢?

来自分类Dev

为什么我们在extjs中需要childEls-在哪里使用呢?

来自分类Dev

这应该是 int,那我们为什么要使用 %s 呢?

来自分类Dev

在Codeigniter中,钩子的作用是什么?为什么我们要创造?

来自分类Dev

无论如何要“重置”样式?

来自分类Dev

无论如何要优化以下查询?

来自分类Dev

无论如何要“重置”样式?

来自分类Dev

数组被视为常量指针,因此我们不能更改指针值,但是可以单独更改数组的元素,为什么呢?

来自分类Dev

为什么Rust在主函数中没有返回值,以及无论如何如何返回值?

来自分类Dev

FabricNotReadableException是什么意思?我们应该如何应对呢?

Related 相关文章

  1. 1

    自动返回类型推断的警告:为什么无论如何return定义类型,我们都需要decltype?

  2. 2

    为什么我们要检查n.parent == null?

  3. 3

    为什么我们需要两次检查哈希码?

  4. 4

    无论如何,我们从servlet知道客户端是否还在等待

  5. 5

    无论如何,为什么要使用rem而不是px呢?

  6. 6

    为什么我们要覆盖方法?

  7. 7

    为什么我们要转换常量文字

  8. 8

    为什么我们要多次擦拭磁盘?

  9. 9

    我们为什么要守护进程?

  10. 10

    为什么我们要初始化 webelement?

  11. 11

    无论如何,是否要连续检查geoLocator.isLocationServiceEnabled()?

  12. 12

    NodeJS:加密 - 为什么无论输入如何,我都会得到相同的哈希值?

  13. 13

    为什么我们在 sql 中检查字符串值时会出错

  14. 14

    无论如何要找出视图是什么类型的视图?

  15. 15

    无论如何,我们可以使用ShouldMatchers在Scalatest中给出两个条件

  16. 16

    无论如何,为什么我总是将“关闭...”作为输出?

  17. 17

    为什么Google Chrome浏览器需要这么长时间才能刷新本地文件?无论如何要改善?

  18. 18

    为什么我们用::访问枚举值

  19. 19

    为什么我们使用>>从RGB获取颜色值?

  20. 20

    为什么我们在extjs中需要childEls-在哪里使用呢?

  21. 21

    为什么我们在extjs中需要childEls-在哪里使用呢?

  22. 22

    这应该是 int,那我们为什么要使用 %s 呢?

  23. 23

    在Codeigniter中,钩子的作用是什么?为什么我们要创造?

  24. 24

    无论如何要“重置”样式?

  25. 25

    无论如何要优化以下查询?

  26. 26

    无论如何要“重置”样式?

  27. 27

    数组被视为常量指针,因此我们不能更改指针值,但是可以单独更改数组的元素,为什么呢?

  28. 28

    为什么Rust在主函数中没有返回值,以及无论如何如何返回值?

  29. 29

    FabricNotReadableException是什么意思?我们应该如何应对呢?

热门标签

归档