ArrayList的布尔方法

时间:2015-08-17 19:03:47

标签: methods arraylist boolean

我创建了一个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语句才能返回truefalse

2 个答案:

答案 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;
}