如何用case ignore表示两个java对象相等?

如何用case ignore表示两个java对象相等?,java,Java,我有两个java用户定义的java对象,如何使这两个对象返回相同的引用并忽略大小写 示例代码: public class compare{ private String name; private Integer number; } java.lang.String为此提供了一个方法: myString.equalsIgnoreCase(“myString”) 如果这不是您要查找的对象,请更具体。您必须重写hashcode并使用equals来正确比较两个对象。下面是IDE生成

我有两个java用户定义的java对象,如何使这两个对象返回相同的引用并忽略大小写

示例代码:

public class compare{

    private String name;
    private Integer number;
}

java.lang.String为此提供了一个方法: myString.equalsIgnoreCase(“myString”)


如果这不是您要查找的对象,请更具体。

您必须重写hashcode并使用equals来正确比较两个对象。下面是IDE生成的hashCode和equals方法

class A
    {
        @Override
        public int hashCode()
        {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + ((number == null) ? 0 : number.hashCode());
        return result;
        }
        @Override
        public boolean equals(Object obj)
        {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        A other = (A) obj;
        if (name == null)
        {
            if (other.name != null)
            return false;
        }
        else if (!name.equalsIgnoreCase(other.name))
            return false;
        if (number == null)
        {
            if (other.number != null)
            return false;
        }
        else if (!number.equals(other.number))
            return false;
        return true;
        }
        String name;
        Integer number;
    }

如果引用相同,字符串必须相同。您必须实现自己的hashcode(和equals),并且在hashcode函数中确保名称不区分大小写。