Methods ArrayList的布尔方法

Methods ArrayList的布尔方法,methods,arraylist,boolean,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);

我已经创建了一个
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;
private static Arraylist bikelist=new Arraylist();
公共布尔加法(自行车)
{
如果(bikelist.size()!=-1)
返回true;
添加(自行车);
}
返回false;

这是否合理?我不太清楚布尔方法是如何工作的?它们是否必须包含
if
语句才能返回
true
false

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

取决于要返回的布尔值

关于
add
操作是否成功:将
对象添加到
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.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;
}

取决于要返回的布尔值

关于
add
操作是否成功:将
对象添加到
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.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;
}

在格式化代码之后,它看起来真的很奇怪。您是否注意到
返回false是否在方法之外?为什么要将列表大小与
-1
进行比较?它从来不是
-1
。格式化代码后,它看起来真的很奇怪。您是否注意到
返回false是否在方法之外?为什么要将列表大小与
-1
进行比较?它从来都不是
-1