所以我也试图从LinkedList上的给定索引中删除LinkedList中的多个单词。但是我得到
IndexOutOfBoundsException:
我正努力做到这一点:
LinkedList<Integer> List_Of_Index = new LinkedList<>();
LinkedList<String> list_Of_Words = new LinkedList<>();
List_Of_Index.add(0);
List_Of_Index.add(2);
list_Of_Words.add("remove");
list_Of_Words.add("dont");
list_Of_Words.add("remove");
for (int numb:List_Of_Index){
list_Of_Words.remove(numb);
}
当您在循环的第一次迭代中删除List的一个元素时,包含两个元素的列表在第二次迭代中包含一个元素,并且引用索引2
是无效的
而抛出IndexOutOfBoundsException
的list_Of_Words.remove(2)
。
您可以使用计数器来计算删除次数,并使用它来递减要删除的索引:
int removal = 0;
for (int numb:List_Of_Index){
list_Of_Words.remove(numb-removal);
removal++;
}
您不能删除list_Of_Words…中索引2处的元素
单词列表只有2个元素。。。
在循环中第一次迭代后,单词列表的大小为2(最后一个索引为1(