我与一个关于书架程序的问题混淆了。
我必须创建两个名为Book和BookShelf的类
我或多或少已经完成了Book类,其中包含了这些变量(id,author和title),以及(get,set,toString和constructors方法)
但是对于BookShelf课,我不知道自己所做的是否正确
这是我在BookShelf课上应该做的
创建一个addBook方法,它将书本对象作为输入并将该对象添加到书架中
returnBooks方法,无需参数/参数,只需按顺序返回书籍的数组列表
returnAuthorBooks,以作者作为输入,并返回作者的书籍数组列表
这是我完成的代码
import java.util.ArrayList;
import java.util.Collections;
public class BookShelf {
ArrayList<Book> listOfBooks = new ArrayList<Book>();
public void addBook(Book getTitle){
listOfBooks.add(getTitle);
}
public ArrayList<Book> returnBooks(){
ArrayList myBook = new ArrayList();
Collections.sort(myBook);
return myBook;
}
public ArrayList<Book> returnAuthor(Book author){
for (Book books : listOfBooks){
if (author.getAuthor() == books.getTitle()){
return listOfBooks;
}
}
return null;
}
}
我想澄清一下这里是否有错误,因为某种原因,我觉得自己做错了什么
最佳答案
您的returnBooks
方法返回一个空的列表。你应该改变
ArrayList myBook = new ArrayList();
至
ArrayList<Book> myBook = new ArrayList(listOfBooks);
为了返回完整的排序列表。
您的
returnAuthor
方法有几个问题:它应该以作者作为输入(我不知道它是否应该是String或是否存在Author类)。
您将书的作者与
==
而不是equals
进行比较(请参阅this问题)。如果找到与您所要寻找的作者的书,则返回整个书清单。您只应退还该作者的书。