IndexOutOfBoundsException:具有两个LinkedList

时间:2018-11-12 21:02:07

标签: java linked-list

因此,我也尝试从LinkedList上的给定索引中删除LinkedList中的多个单词。但是我得到了

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

我正试图这样做:

{{1}}

3 个答案:

答案 0 :(得分:3)

在循环的第一次迭代中删除List的一个元素时,包含两个元素的列表在第二次迭代中包含单个元素,并且引用索引2无效。
而引发list_Of_Words.remove(2)的{​​{1}}。

您可以使用计数器来计算删除次数,并使用它减少要删除的索引:

IndexOutOfBoundsException

答案 1 :(得分:1)

您无法删除list_Of_Words中索引2处的元素。...
list_Of_Words仅包含2个元素...

答案 2 :(得分:0)

在循环中第一次迭代后,您的单词列表的大小将为2(最后一个索引为1)