web-dev-qa-db-ja.com

ArrayListをオブジェクト配列に変換します

ArrayListをオブジェクト配列に変換するためのコマンドがJavaにあります。arrayListからオブジェクト配列に各オブジェクトをコピーする方法を知っていますが、そうなるかどうか疑問に思いました自動的に行われます。

私はこのようなものが欲しい:

ArrayList<TypeA> a;

// Let's imagine "a" was filled with TypeA objects

TypeA[] array = MagicalCommand(a);
33
marionmaiden

標準の Collection.toArray(T []) のようなものが必要なことを行う必要があります(ArrayListCollectionを実装していることに注意してください)。

TypeA[] array = a.toArray(new TypeA[a.size()]);

補足として、aList<TypeA>ではなくArrayList<TypeA>型として定義することを検討する必要があります。これにより、アプリケーションに実際には適用できない実装固有の定義が回避されます。

また、a.size()に渡される配列のサイズとして0の代わりにa.toArray(TypeA[])の使用について この質問 を参照してください。

93
Mark Elliot

このコードを使用できます

ArrayList<TypeA> a = new ArrayList<TypeA>();
Object[] o = a.toArray();

次に、そのオブジェクトをTypeAに戻したい場合は、instanceOfメソッドでチェックします。

10
Shashank T

はい。 ArrayListにはtoArray()メソッドがあります。

http://Java.Sun.com/javase/6/docs/api/Java/util/ArrayList.html

8
Rachel

ArrayListをオブジェクト配列に変換します

ArrayListにはCollectionを取得するコンストラクターがあるため、一般的なイディオムは次のとおりです。

_List<T> list = new ArrayList<T>(Arrays.asList(array));
_

配列によって作成されたリストのコピーを作成します。

現在、Arrays.asList(array)は配列をラップするため、リストへの変更は配列に影響し、逆も同様です。追加または削除することはできませんが

そのようなリストからの要素。

2
user527619
TypeA[] array = (TypeA[]) a.toArray();
0
jweber