Java 如何返回arraylist

Java 如何返回arraylist,java,arraylist,Java,Arraylist,问题是: 此方法将作者的姓名作为字符串参数,并返回该作者编写的所有书籍的arraylist。它使用一个while循环和一个interator,查找该作者编写的书籍(不区分大小写),并将它们添加到另一个arraylist中 到目前为止,我已经: public ArrayList<Book> getBooksByAuthor(String authorName){ Iterator<Book> it = books.iterator(); ArrayList bo

问题是:

此方法将作者的姓名作为字符串参数,并返回该作者编写的所有书籍的arraylist。它使用一个while循环和一个interator,查找该作者编写的书籍(不区分大小写),并将它们添加到另一个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;
}
public ArrayList getBooksByAuthor(字符串authorName){
Iterator it=books.Iterator();
ArrayList books=新建ArrayList();
while(it.hasNext()){
Book b=it.next();
if(authorName.equalsIgnoreCase(b.getBookAuthor())){
books.add(b.getBookTitle());
}
}
还书;
}

我要问的问题是,这个问题到底要我做什么?返回arraylist是否意味着您需要重新创建这些对象?我不知道我在这里该做什么。。。提前感谢

您的方法返回
ArrayList

变量被声明为
ArrayList
rawtype

您的运行时类型是
ArrayList

下定决心!! 那么:

public List<Book> getBooksByAuthor(String authorName){
    return books.stream()
         .filter(book -> authorName.equalsIgnoreCase(book.getBookAuthor()))
         .collect(Collectors.toList());
}
公共列表getBooksByAuthor(字符串authorName){
还书。stream()
.filter(book->authorName.equalsIgnoreCase(book.getBookAuthor())
.collect(Collectors.toList());
}

您的方法返回
ArrayList

变量被声明为
ArrayList
rawtype

您的运行时类型是
ArrayList

下定决心!! 那么:

public List<Book> getBooksByAuthor(String authorName){
    return books.stream()
         .filter(book -> authorName.equalsIgnoreCase(book.getBookAuthor()))
         .collect(Collectors.toList());
}
公共列表getBooksByAuthor(字符串authorName){
还书。stream()
.filter(book->authorName.equalsIgnoreCase(book.getBookAuthor())
.collect(Collectors.toList());
}

您应该返回
ArrayList
还是
ArrayList
?您应该选择一个而不是两个。只需将
b.getBookTitle
替换为
b
,因为您要将书籍添加到数组中,而不是
字符串,即它的标题。应该是谢谢您是否返回
ArrayList
ArrayList
?您应该选择一个而不是两个。只需将
b.getBookTitle
替换为
b
,因为您要将书籍添加到数组中,而不是
字符串,这就是它的标题。它应该是谢谢您的