相关疑难解决方法(0)

集合的hashCode方法的最佳实现

我们如何决定hashCode()集合方法的最佳实现(假设equals方法已被正确覆盖)?

java hash equals hashcode

292
推荐指数
9
解决办法
23万
查看次数

将Java中的两个对象与可能的空值进行比较

我想在Java中比较两个字符串的相等性,当其中一个或两个都可以时null,所以我不能简单地调用.equals().什么是最好的方法?

boolean compare(String str1, String str2) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

编辑:

return ((str1 == str2) || (str1 != null && str1.equals(str2)));
Run Code Online (Sandbox Code Playgroud)

java null equality

162
推荐指数
7
解决办法
15万
查看次数

使用.equals()和==运算符比较两个对象

我用一个String字段构建了一个类.然后我创建了两个对象,我必须使用==运算符进行比较.equals().这就是我所做的:

public class MyClass {

    String a;

    public MyClass(String ab) {
        a = ab;
    }

    public boolean equals(Object object2) {
        if(a == object2) { 
            return true;
        }
        else return false;
    }

    public boolean equals2(Object object2) {
        if(a.equals(object2)) {
            return true;
        }
        else return false;
    }



    public static void main(String[] args) {

        MyClass object1 = new MyClass("test");
        MyClass object2 = new MyClass("test");

        object1.equals(object2);
        System.out.println(object1.equals(object2));

        object1.equals2(object2);
        System.out.println(object1.equals2(object2));
    }


}
Run Code Online (Sandbox Code Playgroud)

编译后,结果显示两次false.如果两个对象具有相同的字段 - "test",为什么它是错误的?

java methods class equals object

73
推荐指数
5
解决办法
36万
查看次数

如何比较两个java对象

我有两个从同一个类实例化的java对象.

MyClass myClass1 = new MyClass();
MyClass myClass2 = new MyClass();
Run Code Online (Sandbox Code Playgroud)

如果我将它们的两个属性设置为完全相同的值,然后验证它们是否相同

if(myClass1 == myClass2){
   // objects match
   ...

}

if(myClass1.equals(myClass2)){
   // objects match
   ...

}
Run Code Online (Sandbox Code Playgroud)

但是,这些方法都没有返回真正的价值.我检查了每个属性并匹配.

如何比较这两个对象以验证它们是否相同?

java compare object

29
推荐指数
4
解决办法
17万
查看次数

标签 统计

java ×4

equals ×2

object ×2

class ×1

compare ×1

equality ×1

hash ×1

hashcode ×1

methods ×1

null ×1