java arraylist类程序

时间:2015-11-14 11:30:46

标签: java arraylist

我对我给出的问题感到困惑,这与书架程序有关。 我必须创建两个名为Book和BookShelf的类

我或多或少地完成了包含这些变量(id,author和title)的Book类(get,set,toString和constructors方法)

然而对于BookShelf课程,我对我所做的事情是否正确无能为力

以下是我应该在BookShelf课上做的事情

  • 创建 addBook 方法,它将book对象作为输入并将对象添加到书架

  • returnBooks 方法,不需要参数/参数只需按顺序返回书籍的arraylist

  • returnAuthorBooks ,将作者作为输入并由作者返回书籍的arraylist

这是我已完成的代码

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;
    }
}

想澄清一下是否有任何错误,因为某种原因我觉得我做错了什么

1 个答案:

答案 0 :(得分:1)

您的returnBooks方法返回一个空列表。你应该改变

ArrayList myBook = new ArrayList();

ArrayList<Book> myBook = new ArrayList(listOfBooks);

为了返回完整的排序列表。

您的returnAuthor方法有几个问题:

  1. 它应该以作者为输入(我不知道它是否应该是String或是否有Author类。)
  2. 您将本书的作者与==而不是equals进行比较(请参阅this问题)。
  3. 如果您找到与您正在寻找的作者的图书,则会返回整个图书清单。你应该只归还该作者的书籍。