Pfeffer 2017-08-15 07:21 采纳率: 50%
浏览 1032
已采纳

Hashcode 和 equals 问的我都累了

图片说明

请认真看我的问题:
我仔细看了一下这四句话,得出来的结论:
1. object.equals 比较的是引用内容,应用内容相等,肯定是同一个对象或者说对象相等。
2. Hashcode算法的对象是和对象的信息本身和地址有关,不是单一的和地址有关。
因为如何只和地址有关,肯定是和equals同步的

  • 写回答

2条回答 默认 最新

  • 鼠晓 博客专家认证 2017-08-15 07:39
    关注

    【1】 object.equals 比较的是引用内容,应用内容相等,肯定是同一个对象或者说对象相等。
    不一定,,比如

            String a = new String("ABC");
            String b = new String("ABC");
            System.out.println(a.equals(b));//true
            System.out.println(b.equals(a));//true
            System.out.println(a==b);//false
    

    【2】Hashcode算法的对象是和对象的信息本身和地址有关,不是单一的和地址有关。
    hashcode和物理地址没关系,只是一种约定,并非强制性的。主要是为相关哈希集合及运算服务的。

      public native int hashCode();//源码中是一个本地方法
    

    有个例子,,连个对象不一定相等,但是hashCode相等。(数字可能不一样但是,相等)

            String a = new String("ABC");
            String b = new String("ABC");
            System.out.println(a.hashCode());//64578
            System.out.println(b.hashCode());//64578
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动