我有一个图书对象的数组列表,其中一个类字段是标题。我想在数组中搜索具有特定标题值的书。
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字段与传递给函数的字符串进行比较。如果字符串匹配,则书名将打印到控制台。但没有任何反应。帮助:(
答案 0 :(得分:2)
看起来您需要使用'equals'方法进行字符串比较:
b.getTitle.equals(bookTitle)
答案here描述了原因:
==测试引用相等性(它们是否是同一个对象)。
.equals()测试值的相等性(它们在逻辑上是否“相等”)。