Java在数组中保存3个值

时间:2012-10-06 13:27:57

标签: java arrays collections arraylist

我需要一个数组对象,它应该包含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或其他什么?

3 个答案:

答案 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();