以下代码中的行x.set(7,y)
正在抛出IndexOutOfBoundsException
,我无法弄清楚原因。你能帮忙吗?
LinkedList<myClass> x = new LinkedList<myClass>();
x = MyArrayList.get(7);
Iterator<myClass> itr = x.iterator();
myClass y = new myClass();
while (itr.hasNext()) {
y = itr.next();
if (z.methodCallToGetStr().equals(y.methodCallToGetStr()))//z is a myClass object
{
y.incCount();
x.set(7, y);
break;
答案 0 :(得分:0)
假设MyArrayList.get(7)创建了7个元素,这些元素的编号从0到6.第7个元素就在列表的末尾。
答案 1 :(得分:0)
x可以在null初始化,同样可以应用于y,这有助于您使用更少的内存。 无论如何使用x = MyArrayList.get(7)你正在将它的引用从新列表更改为MyArrayList中索引为7的列表(我假设这是一个ArrayList&gt;)所以使用x.set(7,y)你设置的是列表中索引为7的元素,数组列表中的索引为7。 但我不认为你可以认为x足够长,所以最好改变if的条件
if (z.methodCallToGetStr().equals(y.methodCallToGetStr()) && x.size() > 7)
我想你想把元素等于z移动到MyArrayList [7] [7],但是如果arraylist和子链表不够长,你应该填充它们以使它们足够长。