使用java中的链接列表搜索书名

时间:2016-02-03 23:48:28

标签: java search linked-list

我正在尝试编写一个程序,用户可以通过输入书名来搜索书籍。我用链表存储了一些书。我用字符串参数创建了一个名为findBook的方法。当我要求用户搜索一本书并运行该方法时,它不起作用,但是当我在代码中的findBook方法中输入书名时,它可以工作。以下是我的一些代码不起作用:

init

当我将searchBookTitle方法更改为此方法时,它可以正常工作,但我希望用户输入标题:

init

2 个答案:

答案 0 :(得分:2)

您应该按equals()比较字符串:

if(!isEmpty())
{
    while(!theBook.bookName.equals(bookName))
    {
        if(theBook.next == null)
        {
            return null;
        }
        else
        {
            theBook = theBook.next;
        }
    }
}
else
{
    System.out.println("Our Library is empty");
}

答案 1 :(得分:0)

比较参考文献:

while(theBook.bookName != bookName)

您需要比较字符串值:

while(!theBook.bookName.equals(bookName))

当您搜索book.findBook("Of Mice and Men")时,它找到了本书,因为编译器对其进行了优化并使用了相同的String引用。如果您要搜索findBook(“The”+“Great Gatsby”),那么就找不到它,因为它会创建一个带有不同引用的新String。