ArrayListをオブジェクト配列に変換するためのコマンドがJavaにあります。arrayListからオブジェクト配列に各オブジェクトをコピーする方法を知っていますが、そうなるかどうか疑問に思いました自動的に行われます。
私はこのようなものが欲しい:
ArrayList<TypeA> a;
// Let's imagine "a" was filled with TypeA objects
TypeA[] array = MagicalCommand(a);
標準の Collection.toArray(T []) のようなものが必要なことを行う必要があります(ArrayList
はCollection
を実装していることに注意してください)。
TypeA[] array = a.toArray(new TypeA[a.size()]);
補足として、a
をList<TypeA>
ではなくArrayList<TypeA>
型として定義することを検討する必要があります。これにより、アプリケーションに実際には適用できない実装固有の定義が回避されます。
また、a.size()
に渡される配列のサイズとして0
の代わりにa.toArray(TypeA[])
の使用について この質問 を参照してください。
このコードを使用できます
ArrayList<TypeA> a = new ArrayList<TypeA>();
Object[] o = a.toArray();
次に、そのオブジェクトをTypeAに戻したい場合は、instanceOfメソッドでチェックします。
はい。 ArrayList
にはtoArray()
メソッドがあります。
http://Java.Sun.com/javase/6/docs/api/Java/util/ArrayList.html
ArrayListをオブジェクト配列に変換します
ArrayListにはCollectionを取得するコンストラクターがあるため、一般的なイディオムは次のとおりです。
_List<T> list = new ArrayList<T>(Arrays.asList(array));
_
配列によって作成されたリストのコピーを作成します。
現在、Arrays.asList(array)
は配列をラップするため、リストへの変更は配列に影響し、逆も同様です。追加または削除することはできませんが
TypeA[] array = (TypeA[]) a.toArray();