我需要一个数组对象,它应该包含3个对象。
起初使用Collection
,但我需要添加到特定位置。例如:
CollectionObject.add(pos, myObject)
然后我去了ArrayList
,创建了这样的对象:
ArrayList<MyObject> array = new ArrayList<MyObject>();
创建时,它创建大小为1的数组,但我需要添加到位置0-2,所以添加如下:
array.add(2, myObject)
我得到了:
java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
我的解决方案是,创建arraylist,向其中添加3个空对象,然后覆盖,但更精细的解决方案?是否有更好的数组保持对象,如Vector
或其他什么?
答案 0 :(得分:2)
使用3个元素的数组,如下所示:
MyObject [] array = new MyObject[3];
array[2] = myObject;
答案 1 :(得分:2)
ArrayList
不是数组,它是使用隐藏数组实现的List
。您需要先添加三个项目才能按索引处理项目,如下所示:
ArrayList<MyObject> array = new ArrayList<MyObject>(3);
array.add(null);
array.add(null);
array.add(null);
array.set(2, myObject)
ArrayList
会自动增长。如果您不需要此功能,则使用普通数组,例如:
MyObject array = new MyObject[] {myObject1, myObject2, myObject3};
现在您可以使用索引操作符替换项目:
array[2] = newMyObject;
答案 2 :(得分:1)
MyObject[] a = new MyObject[3];
a[2] = new MyObject();