Подтвердить что ты не робот

Преобразование ArrayList в массив объектов

Есть ли команда в java для преобразования ArrayList в массив объектов. Я знаю, как сделать это копирование каждого объекта из arrayList в массив объектов, но мне было интересно, будет ли это сделано автоматически.

Мне нужно что-то вроде этого:

ArrayList<TypeA> a;

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

TypeA[] array = MagicalCommand(a);
4b9b3361

Ответ 1

Что-то вроде стандартного Collection.toArray(T []) должно делать то, что вам нужно (обратите внимание, что ArrayList реализует Collection)

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

На стороне примечания следует рассмотреть возможность определения a типа List<TypeA>, а не ArrayList<TypeA>, поэтому избегайте определенного определения конкретной реализации, которое может быть неприменимо для вашего приложения.

Также см. этот вопрос об использовании a.size() вместо 0 в качестве размера массива, переданного в a.toArray(TypeA[])

Ответ 3

Вы можете использовать этот код

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

Затем, если вы хотите, чтобы этот объект возвращался в TypeA, просто проверьте его с помощью метода instanceOf.

Ответ 4

Преобразование ArrayList в объект Массив

ArrayList имеет конструктор, который принимает коллекцию, поэтому общий Идиома:

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

Создает копию списка, созданного массивом.

теперь Arrays.asList(array) будет обертывать массив, поэтому изменения в списке будет влиять на массив, и наоборот. Хотя вы не можете добавить или удалить

элементов из такого списка.

Ответ 5

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