2012-10-06 49 views
0

我需要一个数组对象,它应该包含3个对象。Java在数组中保存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或其他?

回答

2

使用3个元素的数组代替如下:

MyObject [] array = new MyObject[3]; 
array[2] = myObject; 
2

ArrayList不是数组,它是一个List使用隐藏数组实现。您需要三个项目添加到它之前,你可以通过索引地址项,像这样:

ArrayList<MyObject> array = new ArrayList<MyObject>(3); 
array.add(null); 
array.add(null); 
array.add(null); 
array.set(2, myObject) 

ArrayList S也可以自动增长。如果不需要此功能,您使用的是普通的阵列,例如,像这样:

array[2] = newMyObject; 
1
MyObject[] a = new MyObject[3]; 
a[2] = new MyObject(); 

MyObject array = new MyObject[] {myObject1, myObject2, myObject3}; 

现在你可以使用索引操作符替换项目