相关疑难解决方法(0)

Java ArrayList删除对象 - IndexOutOfBoundsException

我试图从ArrayList中删除一个对象,但我不断收到IndexOutOfBounds错误.现在有很多信息可用,为什么在删除迭代 ArrayList 会发生这种情况,但是我没有这样做.例:

 ArrayList<Character> a = new ArrayList<Character>();
 a.add('A');
 a.add('B');
 a.add('C');
 System.out.println(a);
 a.remove('A');
 System.out.println(a);
Run Code Online (Sandbox Code Playgroud)

打印[A, B, C]然后失败:

java.lang.IndexOutOfBoundsException: Index: 65, Size: 3
    at java.util.ArrayList.rangeCheck(ArrayList.java:635)
    at java.util.ArrayList.remove(ArrayList.java:474)
    at b.<init>(b.java:23)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at bluej.runtime.ExecServer$3.run(ExecServer.java:746)
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

编辑澄清这个问题不是一个重复这个问题:

这里发生的具体问题与迭代时删除元素时的常见问题无关.它更多是由重载的ArrayList remove方法和java 的自动类型转换char引起int的.

另一个问题的答案中没有涉及这方面.

java arraylist

8
推荐指数
1
解决办法
5031
查看次数

标签 统计

arraylist ×1

java ×1