为什么我的ArrayList出界(索引3,大小3)当我把这个方法 [英] why is my arraylist out of bounds (index 3, size 3) when I call this method

查看:89
本文介绍了为什么我的ArrayList出界(索引3,大小3)当我把这个方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过这本书的名字找到一本书,书的ArrayList。
当我尝试添加了一本书,这不是在书中ArrayList中,它给我的arrayoutofbounds异常指数:3,大小:3 ....我怎么能解决这个问题。

 公共图书findBookByName(字符串bookNameToFind)
   {
    布尔发现= FALSE;
    串BOOKNAME;
    INT索引= 0;    而(!找到)
    {
        BOOKNAME = bookLibrary.get(指数).getTitle();        如果(bookName.equals(bookNameToFind))
        {
            发现= TRUE;
        }
        其他
        {
            指数++;
        }
    }
    返回bookLibrary.get(索引);


解决方案

您不必在这里使用索引,只是通过你的ArrayList迭代。

我倒等于因为不知道这本书的标题是在你的模型是强制性的。

 公共图书findBookByName(字符串bookNameToFind){
    对于(书书:bookLibrary){
        如果(bookNameToFind.equals(book.getTitle()))
            返回书;
    }
    返回null;
}

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

解决方案

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

这篇关于为什么我的ArrayList出界(索引3,大小3)当我把这个方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆