关于StackOverflow的第一个问题:
所以我有一个程序,其中包含一个名为items的类,允许创建名为'item'的对象......这些项目对象代表书籍并包含基于此类的数据(String title,String author,String genre)。
以下参考是项目对象类中的equals方法:
public boolean equals(Item i)
{
if((i.getTitle()).equals(title)&&(i.getAuthor()).equals(author)&&(i.getType()).equals(title)){
return true;
} else {
return false;
}
}
在另一个名为library的类中,它从文本文件读取并创建一个'Item'的数组列表,有一个'remove'方法,它返回一个布尔值,具体取决于该项是否存在于arrayList中。这是我到目前为止删除方法的代码:
public boolean remove(Item i)
{
//return false if item is not in the list, call equals method from item class
if(!items.contains(i)){
return false;
} else {
}
}
在验证项目在列表中之后,我需要使用Item类中的equals方法将输入'Item i'与列表中的项进行比较,但我不完全确定如何找到确切的内容列表中的对象看起来等于'Item i',然后使用equals方法对其进行验证,以便在将其从列表中删除之前将其与'Item i'进行比较。
答案 0 :(得分:1)
类似的东西:
if (list.contains(i))
list.remove(i);
这就是你想要的。也许更多的背景会有所帮助。
答案 1 :(得分:0)
您需要遍历列表中的所有元素。如果找到该元素,则将其删除并返回true
。如果找不到,请返回false
。
public boolean remove(Item i)
{
//return false if item is not in the list, call equals method from item class
for(Item current : items){
if(current.equals(i)){
items.remove(current);
return true;
}
}
return false;
}