2015-08-17 131 views
1

我创建了一个ArrayList,我正在寻找使用boolean方法将元素添加到ArrayListArrayList的布尔方法

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

+0

格式化代码后,它看起来很奇怪。你有没有注意到'返回false;'是否在方法之外?为什么比较列表大小与'-1'?它从来没有'-1'。 –

回答

0

使用:public boolean add(Object obj):将元素obj添加到Arraylist。如果元素添加成功,则此方法返回true

0

取决于您想要返回的布尔值。

对于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; 
}