取决于您想要返回的布尔值。
对于add
操作是否成功:将Object
添加到ArrayList
将失败的唯一原因是由于0123AIAFAIK。在使用Object.equals(Object)
ArrayList<T>.contains(T)
检查对象平等
public boolean add(Object obj) {
if (list.contains(obj)) {
return false;
}
list.add(obj);
return true;
}
注:这时你会怎么做:
public boolean add(Object obj) {
try {
list.add(obj);
} catch (OutOfMemoryException e) {
return false;
}
return true;
}
如果你想返回false
如果列表中已经包含了对象,然后。因此,您需要为您的自定义课程覆盖equals()
。
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Bicycle other = (Bicycle) obj;
if (other.owner != this.owner) {
return false;
}
if (this.model != other.model) {
return false;
}
return true;
}
格式化代码后,它看起来很奇怪。你有没有注意到'返回false;'是否在方法之外?为什么比较列表大小与'-1'?它从来没有'-1'。 –