将ArrayList转换为对象数组

mar*_*den 34 java arrays arraylist

在java中是否有用于将ArrayList转换为对象数组的命令.我知道如何将每个对象从arrayList复制到对象数组中,但我想知道它是否会自动完成.

我想要这样的东西:

ArrayList<TypeA> a;

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

TypeA[] array = MagicalCommand(a);
Run Code Online (Sandbox Code Playgroud)

Mar*_*iot 96

像标准的Collection.toArray(T [])之类的东西应该做你需要的(注意ArrayList实现Collection):

TypeA[] array = a.toArray(new TypeA[a.size()]);
Run Code Online (Sandbox Code Playgroud)

另外,您应该考虑将a类型定义为类型List<TypeA>而不是ArrayList<TypeA>,这样可以避免某些特定于实现的定义,这些定义可能并不适用于您的应用程序.

另外,请看这个问题,关于使用a.size()而不是0传递给数组的大小a.toArray(TypeA[])


Sha*_*k T 11

您可以使用此代码

ArrayList<TypeA> a = new ArrayList<TypeA>();
Object[] o = a.toArray();
Run Code Online (Sandbox Code Playgroud)

然后,如果您希望将该对象返回到TypeA,只需使用instanceOf方法检查它.