Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
208 views
in Technique[技术] by (71.8m points)

java - why is my arraylist out of bounds (index 3, size 3) when I call this method

I'm trying to find a book in an arraylist of books by using the book's name. When I try to add a book that's not in the book arraylist, it gives me the arrayoutofbounds exception index:3, size:3.... how can I fix that ?

  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);
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You don't have to use index here and just iterate through your arraylist.

I inverted equals because don't know if title of the book is mandatory in your model.

public Book findBookByName(String bookNameToFind) {
    for (Book book : bookLibrary) {
        if (bookNameToFind.equals(book.getTitle()))
            return book; 
    }
    return null;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...