交互期间索引超出界限错误

时间:2013-11-16 00:28:43

标签: java arraylist indexoutofboundsexception

我正在运行一个菜单,用户可以从他们可以选择的选项列表中进行选择。其中一个选项是用户可以使用Array List将字符串添加到特定索引。这是通过一个名为Public Void Set Element()的方法处理的;当我运行程序并通过添加字符串和索引选择此选项时,我得到Index Out of Bounds错误。这是我的代码任何暗示

public void setElement(int setIndex, Object element)
{
    if (setIndex < 0) throw new IndexOutOfBoundsException();
    ListIterator li = listIterator();
    while (li.hasNext()) {
         li.next();
        if (setIndex == 0) {
            li.set(element);
            return;
        }
        setIndex--;
    }
    throw new IndexOutOfBoundsException();
}

2 个答案:

答案 0 :(得分:1)

如果你的结构是一个arraylist,为什么不使用ArrayList.set(int index,E element)?

请参阅http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

答案 1 :(得分:0)

以下是您的代码无效的可能原因:

  • 你怎么知道你给它的索引确实不在列表范围内?
  • 在调用此方法之前,您是否初始化了列表?
  • listIterator()是否返回正确的迭代器

你最好的选择是ns47731说要插入print语句来检查索引的值和列表的长度。