如何归还一个arraylist

时间:2016-03-30 20:48:26

标签: java arraylist

问题是:

此方法将作者的名称作为String参数,并返回该作者编写的所有书籍的arraylist。它使用while循环和一个interator,找到该作者写的书(case = insensitive)并将它们添加到另一个arraylist。

到目前为止,我已经得到了:

public ArrayList<Book> getBooksByAuthor(String authorName){
   Iterator<Book> it = books.iterator();
   ArrayList books = new ArrayList<String>();
   while(it.hasNext()){
       Book b = it.next();
       if(authorName.equalsIgnoreCase(b.getBookAuthor())){
           books.add(b.getBookTitle());
        }
    }
   return books;
}

我问的问题是这个问题要我完全做什么?返回一个arraylist意味着你需要重新创建这些对象?我对我在这里想做的事感到困惑......提前致谢

1 个答案:

答案 0 :(得分:3)

您的方法返回ArrayList<Book>

您的变量被声明为ArrayList原型。

您的运行时类型为ArrayList<String>

提醒你!

怎么样:

public List<Book> getBooksByAuthor(String authorName){
    return books.stream()
         .filter(book -> authorName.equalsIgnoreCase(book.getBookAuthor()))
         .collect(Collectors.toList());
}