我被要求创建一个名为removeBook(Book)的方法,该方法以Book作为参数。我有两个类Library和Book,我在Library类中使用了一个ArrayList<Book>和一个Iterator<Book>。
我遇到的问题是,我不确定如何引用我想要删除的书。
例如:
如果参数是removeBook(String aTitle),那么我可以使用x.getTitle();来匹配标题并删除那本书。
但因为这个论点是一本书,我不知道该怎么做。
下面是我的方法:
public void removeBook(Book nameOfBook) {
Iterator<Book> it = books.iterator();
while(it.hasNext()) {
Book t = it.next();
(An Identifier) id = //Some reference to the book I want to remove??
if(id.equals(nameOfBook))
{
it.remove();
}
else
{
System.out.println("Book not found");
}
}
}发布于 2021-11-06 14:15:22
您可能希望在Book对象中实现一个equals()方法,该方法允许您自定义哪些条件必须为真,以确定是否找到了要从列表中删除的正确Book。请参阅https://www.sitepoint.com/implement-javas-equals-method-correctly/
在equals()方法中,假设没有更多的唯一字段,您可能希望检查title和author是否匹配。
https://stackoverflow.com/questions/69864718
复制相似问题