搜索具有特定字段值的对象的数组对象列表

时间:2017-03-08 17:23:31

标签: java arrays list

我有一个图书对象的数组列表,其中一个类字段是标题。我想在数组中搜索具有特定标题值的书。

public void getBook(String bookTitle) throws SQLException {

    ArrayList<Book> books = getAllBooks();

    for (int i = 0; i < books.size(); i++) {
        Book b = books.get(i);
        if (b.getTitle() == bookTitle) {
            System.out.println(b.getTitle());
        } 

    }

} 

据我所知,上面的代码应该在数组列表中搜索book对象,并将它们的title字段与传递给函数的字符串进行比较。如果字符串匹配,则书名将打印到控制台。但没有任何反应。帮助:(

1 个答案:

答案 0 :(得分:2)

看起来您需要使用'equals'方法进行字符串比较:

b.getTitle.equals(bookTitle)

答案here描述了原因:

  

==测试引用相等性(它们是否是同一个对象)。

     

.equals()测试值的相等性(它们在逻辑上是否“相等”)。