我的任务是重写方法equals()。Stack12<E> that = (Stack12<E>)o;
我对使用and有一些顾虑o instanceof Stack12
。我想知道他们是不是不好的做法,尤其是我that
在 for 循环中使用的方式对我来说有点不合适。
还有其他方法可以将此类与其他对象进行比较吗?还是我的比较方法足够稳健?
public boolean equals(java.lang.Object o){
if(o == this) return true;
if(o == null || !(o instanceof Stack12)){
return false;
}
Stack12<E> that = (Stack12<E>)o;
if(this.size != that.size || this.capacity != that.capacity ){
return false;
}
for(int i = 0; i < this.size; i++){
if( that.stack[i] != this.stack[i] ){
return false;
}
}
return true;
}