我创建了一个ArrayList
,我希望使用boolean
方法向ArrayList
添加元素。
private static Arraylist <Bicycle> bikelist = new Arraylist<Bicycle>();
public boolean add(Bicycle bicycle)
{
if( bikelist.size() != -1)
return true;
bikelist.add(bicycle);
}
return false;
这会合理吗?我不太确定布尔方法是如何工作的?他们是否必须包含if
语句才能返回true
或false
?
答案 0 :(得分:0)
使用:public boolean add(Object obj):将元素obj添加到Arraylist。如果成功添加元素,则此方法返回true
答案 1 :(得分:0)
取决于你想要返回的布尔值。
对于add
操作是否成功:将Object
添加到ArrayList
的唯一原因是失败是由OutOfMemoryException
AFAIK引起的。然后你会这样做:
public boolean add(Object obj) {
try {
list.add(obj);
} catch (OutOfMemoryException e) {
return false;
}
return true;
}
如果您希望在列表已包含对象时返回false
,则:
public boolean add(Object obj) {
if (list.contains(obj)) {
return false;
}
list.add(obj);
return true;
}
请注意ArrayList<T>.contains(T)
使用Object.equals(Object)
检查对象是否相等。因此,您需要覆盖自定义类的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;
}