我正在尝试增加数组列表的大小,但它似乎不想工作。
我这样做:
final int QUEUE_CAPACITY = 27;
ArrayList adjacencyList = new ArrayList<Integer>(QUEUE_CAPACITY);
但是当我尝试添加具有两个参数的添加内容时,(索引,值)我收到此错误:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
答案 0 :(得分:2)
您已建立ArrayList
的初始容量,但列表中仍然没有项目。如果项目尚未存在,则您无法在索引1之前插入项目。
您必须使用the one-argument add
method附加到列表的末尾,或提供0
作为the two-argument add
method中的索引,以便列表中有内容。
答案 1 :(得分:2)
好吧,如果你真的想这样做。
你需要使用'整数'来初始化数组,如'0'左右 然后使用set(int index,E element)方法代替add()方法,该方法用指定的元素替换此列表中指定位置的元素。
您看到'0'的任何索引都等于空。
答案 2 :(得分:0)
您是否正在调用adjacencyList.add(1, 1)
?如果是这样,您尝试添加到索引1
的空列表,该列表不存在。只需致电adjacencyList.add(<value>)
。
此外,在初始化时包含泛型类型:
ArrayList<Integer> adjacencyList = new ArrayList<Integer>(QUEUE_CAPACITY);
PS。您通常不需要调整ArrayList
的初始容量,除非您知道列表很少会变小。
答案 3 :(得分:0)
这不是它的工作方式。
如果您要在某个位置插入某些内容,则需要将元素存储到列表中的某个位置。