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
。