我试图通过使用这本书的名字找到书中的一本书。 当我尝试添加一本不在书籍arraylist中的书时,它给了我arrayoutofbounds异常索引:3,大小:3 ....我该如何解决?
public Book findBookByName(String bookNameToFind)
{
boolean found = false;
String bookName;
int index = 0;
while(!found)
{
bookName = bookLibrary.get(index).getTitle();
if(bookName.equals(bookNameToFind))
{
found = true;
}
else
{
index++;
}
}
return bookLibrary.get(index);
答案 0 :(得分:1)
您不必在此处使用索引,只需遍历您的arraylist即可。
我反转等于因为不知道你的模型中书的标题是否是强制性的。
public Book findBookByName(String bookNameToFind) {
for (Book book : bookLibrary) {
if (bookNameToFind.equals(book.getTitle()))
return book;
}
return null;
}
答案 1 :(得分:0)
尝试for循环:
public Book findBookByName(String bookNameToFind)
{
for (int i = 0; i < bookLibrary.Count(); i++) {
if (bookLibrary.get(i).getTitle().equals(bookNameToFind))
return bookLibrary.get(i);
}
return null;
}
答案 2 :(得分:0)
好吧,如果你找不到这本书,那么你的索引就会在列表的末尾运行。您可以像sanghas26建议的那样执行for循环(这是最好的解决方案),或者您可以在循环开始时添加一个检查以查看i
是否已经走得太远。