gpt4 book ai didi

java - Java中如何检查两个对象是否具有相同的值?

转载 作者:太空宇宙 更新时间:2023-11-04 10:46:53 25 4
gpt4 key购买 nike

我有两个同一类的对象。该类包含许多其他不同类型的对象,例如 List<>、...

确定这两个值是否相同的最佳方法是什么?我正在尝试使用 hashcode 函数,但它似乎对我不起作用。

public class MyClass{
List<OtherClass> myList;
String foo;
SubClass mySubClass;

public MyClass(values...){ ... }
...
}

MyClass obj1 = new MyClass(values...);
MyClass obj2 = new MyClass(values...); // same values with obj1

if(obj1.hashcode() == obj2.hashcode()){
System.out.println("This is what I want");
}else{
System.out.println("This is what happens");
}

最佳答案

您需要重写 MyClass 的 equals() 和 hashcode() 方法。

您的 ide 可能可以为您做到这一点。

你想要的是深度比较。 equals 方法应该进入每个列表并迭代和比较。

hashcode应该使用每个元素的hashcode来生成hashcode。

关于java - Java中如何检查两个对象是否具有相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48311904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com