gpt4 book ai didi

java - 为什么 ArrayList 给出无序输出?

转载 作者:搜寻专家 更新时间:2023-10-30 21:13:16 27 4
gpt4 key购买 nike

我编写了 java 程序,在 ArrayList 中添加整数并从 ArrayList 中删除该整数。但它没有给我正确的结果。这是我的代码..

public static void main(String args[])
{
ArrayList<Integer> a=new ArrayList<Integer>();

a.add(6);
a.add(7);
a.add(8);
a.add(9);

for(int i=0;i<=a.size();i++)
{

System.out.println("Removed Elements=>"+a.remove(i));
}
}

它给我输出如下

    Removed Elements=>6
Removed Elements=>8
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.remove(ArrayList.java:387)
at CollectionTemp.main(CollectionTemp.java:19)

为什么我得到这样的输出?

最佳答案

你的数组:

a[0]=6
a[1]=7 <-- i
a[2]=8
a[3]=9

然后你从 1 处移除,i 递增到 2:

a[0]=6
a[1]=8
a[2]=9 <-- i

请记住,数组索引从 0 开始,因此最后一个元素位于 a.length - 1

你得到你的异常是因为循环条件 i <= a.size() , 所以在最后一次迭代时:

a[0] = 7
a[1] = 9
2 <-- i

关于java - 为什么 ArrayList 给出无序输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18487530/

27 4 0