Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
搜索书籍以获取作者(Java)_Java_Loops_Search_Arraylist - Fatal编程技术网

搜索书籍以获取作者(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));