zoukankan      html  css  js  c++  java
  • 每天一道Java题[2]

    问题

    可以直接根据hashCode()方法产生的值判断两个对象是否相等吗?

       

    解答

    不能!根据Wikipedia(https://en.wikipedia.org/wiki/Java_hashCode())上对hashCode()方法的解释,它会根据这个对象内存储的数据及对象的一些特征来做散列,并返回一个有符号的32位哈希值。从这解释我们就可以看到,hashCode()方法返回的是一个散列值,而对于一个散列来说,不同的内容也是可能会出现相同的散列值的。所以即使两个对象的hashCode()返回的值一样,也并不能代表两个对象是相等的。要判断两个对象是否相等,还是需要equals()方法去做判断。

       

    发散思考

    1.既然hashCode()不能判断两个对象是否相等,那hashCode()可以判断两个对象什么?

    解答:两个对象的hashCode()返回值相等,不能判断这两个对象是相等的。但是,两个对象的hashCode()返回值不相等,则这两个对象一定不相等。

       

    2.hashCode()通常用在什么地方?

    解答:hashCode()方法的主要作用是配合基于散列的集合进行工作。也就是说,当你把对象存储到基于散列的集合的时候,就会用到这个哈希值来做插入和读取的操作,以加快操作的速度。

  • 相关阅读:
    MySQL的操作
    Centos7下MySQL的安装
    一键安装Tomcat
    Hola!
    eval
    初级版笔记(修改中)
    decode前先encode(python)
    不能scanf字符串
    第一次做题的一些问题c++
    DSY3163*Eden的新背包问题
  • 原文地址:https://www.cnblogs.com/huangzijian/p/6851864.html
Copyright © 2011-2022 走看看