Есть ли команда в Java для преобразования ArrayList в объектный массив. Я знаю, как сделать это копирование каждого объекта от 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
, а не ArrayList
, это позволит избежать некоторых специфических определений, которые могут быть неприменимы для вашего приложения.
Также смотрите этот вопрос об использовании a.size()
вместо 0
в качестве размера массива, передаваемого в a.toArray(TypeA[])
Да. ArrayList
имеет метод toArray()
.
http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html
Вы можете использовать этот код
ArrayList<TypeA> a = new ArrayList<TypeA>();
Object[] o = a.toArray();
Затем, если вы хотите вернуть объект в TypeA, просто проверьте его с помощью метода instanceOf.