2017-03-08 478 views
0

我有一個書對象的數組列表,其中一個類字段是標題。我想通過數組搜索具有特定標題值的書籍。搜索具有特定字段值的對象的對象的數組列表

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()); 
     } 

    } 

} 

至於我可以告訴上面的代碼應該通過對本書的對象數組列表中進行搜索,並傳遞給函數的字符串比較它們的標題字段。如果字符串匹配,則書名將被打印到控制檯。然而沒有任何反應說明:(

+1

您正在比較代碼中書名的參考,顯然會有所不同。所以,如果你真的想比較字符串的內容,那麼試試這個'b.getTitle()。equals(bookTitle)' – BeginnersSake

+0

你可能也想跳出找到的循環。 – MeBigFatGuy

+0

謝謝你是這個問題。 –

回答

2

看起來你需要使用「等於」字符串比較方法:

b.getTitle.equals(bookTitle) 

有一個答案here描述爲什麼:

==測試以供參考(不管它們是否是相同的對象)

.equals()測試值是否相等(它們在邏輯上是否相等)

相關問題