0

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か?

4

3 に答える 3

2

次のように、代わりに 3 つの要素の配列を使用します。

MyObject [] array = new MyObject[3];
array[2] = myObject;
于 2012-10-06T13:31:30.933 に答える
2

ArrayListは配列ではなく、List隠し配列を使用して実装されています。次のように、インデックスで項目をアドレス指定する前に、3 つの項目を追加する必要があります。

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;
于 2012-10-06T13:32:20.560 に答える
1
MyObject[] a = new MyObject[3];
a[2] = new MyObject();
于 2012-10-06T13:33:22.873 に答える