我正试图为LinkedList编写一个get((方法,其中私有方法由公共方法使用,但我一直得到IndexOutOfBoundsException,我不知道它来自哪里。
这个异常似乎也只是不喜欢整数值、字符串、双精度和所有其他数据类型
这个列表主要没有固定的长度,所以现在我不知道java为什么抱怨。
public E get(int i)
{
if (i < 0 || i >= size())
{
throw new IndexOutOfBoundsException("" + i);
}
else if (i == 0 )
{
return head.value;
}
return get(i, head);
}
private E get(int i, Node node)
{
if (i == 0)
{
return (E) node.value;
}
return (E) get(i - 1, node.next);
}
您显示的代码是正确的(尽管它可能更简单(。我能想到它抛出IndexOutOfBoundsException
:的两个可能原因
- 传递给CCD_ 2的索引是错误的
- 方法
size()
没有返回正确的值
我想这是我们从阅读你的问题中所能知道的。