问题:
在多线程中使用ArrayList调用Add()添加元素时,有时候会出现下面的错误
Exception in thread "Thread-1" Exception in thread "Thread-2" java.lang.ArrayIndexOutOfBoundsException: 15
at java.util.ArrayList.elementData(ArrayList.java:418)
at java.util.ArrayList.get(ArrayList.java:431)
at com.jant.demo_jant.DemoJantApplication$AddToTest.run(DemoJantApplication.java:35)
at java.lang.Thread.run(Thread.java:745)
java.lang.ArrayIndexOutOfBoundsException: 15
at java.util.ArrayList.add(ArrayList.java:459)
at com.jant.demo_jant.DemoJantApplication$AddToTest.run(DemoJantApplication.java:32)
at java.lang.Thread.run(Thread.java:745)
那么问题来了,ArrayList是自动扩容、没有长度限制,为什么还会出现数组下标越界这种错误呢?
示例代码:
通过这个示例,来研究一下
public class DemoJantApplication {
public static List<Integer> numberlist = new ArrayList<>();
class AddToTest implements Runnable</