搜索书籍以获取作者(Java)
我正试着翻阅我的书单,把那个作者的所有书都还给我。我得到一张空名单搜索书籍以获取作者(Java),java,loops,search,arraylist,Java,Loops,Search,Arraylist,我正试着翻阅我的书单,把那个作者的所有书都还给我。我得到一张空名单 public ArrayList<Book> searchByAuthor(Author author) { ArrayList<Book> bookList = new ArrayList<>(); for (int i = 0; i < myBooks.size(); i++) { if (myBooks.get(i).getMyAuthors().c
public ArrayList<Book> searchByAuthor(Author author) {
ArrayList<Book> bookList = new ArrayList<>();
for (int i = 0; i < myBooks.size(); i++) {
if (myBooks.get(i).getMyAuthors().contains(author)) {
bookList.add(myBooks.get(i));
}
}
return bookList;
}
public ArrayList<Author> getMyAuthors() {
return myAuthors;
}
您的作者对象是一个值对象。您需要在Author.java类中同时实现
equals
和hashcode
方法。Author的equals实现是什么样子的?Author参数与getMyAuthors()中的相同吗?还是您创建了一个新对象?看起来equals没有实现。看这个,我的作者没有一个相同的方法。。也许这就是为什么可能的重复(不能改变我的投票原因):。如需更多副本,请使用您最喜爱的搜索引擎,搜索java列表中包含的自定义对象
。您可以在google上添加站点:stackoverflow.com
,将结果限制在此站点。
Author author = new Author("James");
System.out.println(bookCollections.searchByAuthor(author));