如何用case ignore表示两个java对象相等?
我有两个java用户定义的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生成
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函数中确保名称不区分大小写。