检查对象是否等于java中存储在对象中的数据
我有一个IPAdress.java类,它有一个带int数组的构造函数来存储IP地址。我必须检查作为参数传递的对象是否等于对象中存储的IP地址。 我试过这样的方法:检查对象是否等于java中存储在对象中的数据,java,arrays,Java,Arrays,我有一个IPAdress.java类,它有一个带int数组的构造函数来存储IP地址。我必须检查作为参数传递的对象是否等于对象中存储的IP地址。 我试过这样的方法: public boolean isTheSame(IPAdress p){ if(????) { return true; } else { return false; } } 我还有另一个方法,在这里我创建了这个对象
public boolean isTheSame(IPAdress p){
if(????) {
return true;
} else {
return false;
}
}
我还有另一个方法,在这里我创建了这个对象
public static IPAdress fromString(String ipStr) {
int[] arr = new int[4];
String[] split = ipStr.split("\\.");
for(int i=0;i<4;i++){
arr[i]=Integer.parseInt(split[i]);
System.out.println(arr[i]);
}
IPAdress p = new IPAdress (arr);
return p;
}
publicstaticipAddressfromstring(stringipstr){
int[]arr=新的int[4];
字符串[]split=ipStr.split(“\\”);
对于(int i=0;i假设您有这样一种获取内部表示的方法(例如,假设您的方法被称为asArray()
),您可以使用):
编辑:
顺便说一句,请注意,规范的Java方法是重写eauls(Object)
:
摆脱你的IstheName()
方法。只需使用为相同目的而设计的内置equals方法
重写IPAdress类中的equals方法,并在其中提供您的实现以检查相等性。例如:如果两个对象的ip相同,则返回true…为了实现可比较的接口,您的类IPAdress将为:
公共类IPAddess实现了Comparable,那么您应该实现这些方法
@Override
public int compareTo(IPAddress ipAddress) { }
@Override
public boolean equals(Object obj) { }
A class that overrides equals must also override hashCode.
@Override
public int hashCode()
向我们展示您的IPAdress
课程。
@Override
public boolean equals(Object o) {
if (!(o instanceof IPAddress) {
return false;
}
return Arrays.equals(asArray(), ((IPAddress) o).asArray());
}
@Override
public int compareTo(IPAddress ipAddress) { }
@Override
public boolean equals(Object obj) { }
A class that overrides equals must also override hashCode.
@Override
public int hashCode()