当我们使2个对象的哈希码指向一个地址时,为什么它是临时的?

鲁沙卜·奥斯瓦尔(Rushabh Oswal)

Equals_to_operator是一个类,具有参数化的构造函数public Equals_to_operator(int dd, int mm, int yy)ef是两个对象,它们使用相同的参数调用参数化的构造函数。我已经覆盖了hashCode并使两个对象的hashCode相同。即使使哈希码相同(对象的内存位置相同),它也会给出Output:not equals

我想通过使哈希码相同来执行相同的操作,这是我哪里出错了?

   public class Equals_to_operator {
    private int dd,mm,yy;

    public Equals_to_operator(int dd, int mm, int yy) {

        this.dd = dd;
        this.mm = mm;
        this.yy = yy;
    }
    @Override
    public String toString() {
        return "Equals_to_operator [dd=" + dd + ", mm=" + mm + ", yy=" + yy + "]";
    }
    public int hashCode() {
        return 1;

    }
    public static void main(String[] args) {
        Equals_to_operator e=new Equals_to_operator(7, 1, 2016);
        System.out.println(e+"\n"+e.hashCode());
        Equals_to_operator f=new Equals_to_operator(7, 1, 2016);
        System.out.println(f+"\n"+f.hashCode());
        if (e==f)
            System.out.println("equals");
        else
            System.out.println("not equals");
    }
叠生的

即使使哈希码相同(对象的内存位置相同),它也会给出Output:not equals

具有相同的哈希码并不意味着对象相等。

memory location of object same……这不是哈希码的作用。你从哪里得到的?

如果(e == f)

这意味着,条件将IFF既真ef都指向同一个对象。

根据您的equals方法,e指向的两个对象f都是相等的,但是==要检查引用的相等性而不是内容。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Dev

为什么当我们只给一个变量赋一个变量并打印时打印所有对象的属性

来自分类Dev

当我们为一个类的对象分配一个整数值时,为什么要调用参数化构造函数?

来自分类Dev

为什么我们可以非常量引用一个临时对象并延长其寿命?

来自分类Dev

为什么我们在原型继承中使用一个临时框?

来自分类Dev

当我们在一个接口中添加两个抽象方法并只实现一个方法时,为什么我们不能使用 lambda 实现另一个方法呢?

来自分类Dev

当我们给一个名字分配一个函数时,内部会发生什么?

来自分类Dev

为什么我们需要创建一个one-arg构造函数才能使用临时的无名对象?

来自分类Dev

为什么我们需要一个用户提供的const对象构造函数?

来自分类Dev

为什么我们需要在堆中创建一个对象?

来自分类Dev

为什么我们在 main 函数中启动一个对象

来自分类Dev

当我们释放一个按钮时,如何触发一个事件?

来自分类Dev

当我有一个私有id字段时,为什么Hibernate要求我们实现equals / hashcode方法?

来自分类Dev

当我们使用$ this关键字通过另一个当前方法或变量指向一个方法时

来自分类Dev

在角度上,当我们试图从定制服务返回一些数据时,为什么需要一个额外的return语句

来自分类Dev

在 SLL 中,当其原始节点属性默认设置为 None 时,为什么我们显式覆盖指向 None 的下一个指针?

来自分类Java

我们初始化主对象,并在其构造函数中创建一个新对象。当我们摧毁主要物体时,它的创作会发生什么?

来自分类Dev

为什么我们乘以 2 PI 来创建一个圆

来自分类Dev

PyQT5 当我们单击菜单栏的对象时,我们要打开一个新窗口

来自分类Dev

如果我们只能分配一个公共IP地址,为什么还要有NAT?

来自分类Dev

当我们导入一个jar到pyspark shell时后台会发生什么

来自分类Dev

当我们只有一个通用特征时,Rust 处理常量数学的方法是什么

来自分类Dev

为什么在字典中,当我们有相同的值和不同的键名时,为什么它会选择一个与另一个相比

来自分类Dev

为什么我们需要一个“MultiRepositoryProvider”和一个单独的“MultiBlocProvider”?

来自分类Java

为什么从Java调用科特林对象时,我们得到了一个奇怪的方法叫什么名字?

来自分类Dev

当我们编写像 void *p 这样的 void 变量时;cout<<&p; cout<<p; 所以它给出了两个不同的地址,但为什么呢?

来自分类Java

当我们说一个ArrayList不同步是什么意思?

来自分类Dev

当我们git checkout一个提交时会发生什么

来自分类Dev

当我们只有一个片段时处理 `BackPressed`

Related 相关文章

  1. 1

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  2. 2

    为什么当我们只给一个变量赋一个变量并打印时打印所有对象的属性

  3. 3

    当我们为一个类的对象分配一个整数值时,为什么要调用参数化构造函数?

  4. 4

    为什么我们可以非常量引用一个临时对象并延长其寿命?

  5. 5

    为什么我们在原型继承中使用一个临时框?

  6. 6

    当我们在一个接口中添加两个抽象方法并只实现一个方法时,为什么我们不能使用 lambda 实现另一个方法呢?

  7. 7

    当我们给一个名字分配一个函数时,内部会发生什么?

  8. 8

    为什么我们需要创建一个one-arg构造函数才能使用临时的无名对象?

  9. 9

    为什么我们需要一个用户提供的const对象构造函数?

  10. 10

    为什么我们需要在堆中创建一个对象?

  11. 11

    为什么我们在 main 函数中启动一个对象

  12. 12

    当我们释放一个按钮时,如何触发一个事件?

  13. 13

    当我有一个私有id字段时,为什么Hibernate要求我们实现equals / hashcode方法?

  14. 14

    当我们使用$ this关键字通过另一个当前方法或变量指向一个方法时

  15. 15

    在角度上,当我们试图从定制服务返回一些数据时,为什么需要一个额外的return语句

  16. 16

    在 SLL 中,当其原始节点属性默认设置为 None 时,为什么我们显式覆盖指向 None 的下一个指针?

  17. 17

    我们初始化主对象,并在其构造函数中创建一个新对象。当我们摧毁主要物体时,它的创作会发生什么?

  18. 18

    为什么我们乘以 2 PI 来创建一个圆

  19. 19

    PyQT5 当我们单击菜单栏的对象时,我们要打开一个新窗口

  20. 20

    如果我们只能分配一个公共IP地址,为什么还要有NAT?

  21. 21

    当我们导入一个jar到pyspark shell时后台会发生什么

  22. 22

    当我们只有一个通用特征时,Rust 处理常量数学的方法是什么

  23. 23

    为什么在字典中,当我们有相同的值和不同的键名时,为什么它会选择一个与另一个相比

  24. 24

    为什么我们需要一个“MultiRepositoryProvider”和一个单独的“MultiBlocProvider”?

  25. 25

    为什么从Java调用科特林对象时,我们得到了一个奇怪的方法叫什么名字?

  26. 26

    当我们编写像 void *p 这样的 void 变量时;cout<<&p; cout<<p; 所以它给出了两个不同的地址,但为什么呢?

  27. 27

    当我们说一个ArrayList不同步是什么意思?

  28. 28

    当我们git checkout一个提交时会发生什么

  29. 29

    当我们只有一个片段时处理 `BackPressed`

热门标签

归档