web-dev-qa-db-fra.com

Convertir un ArrayList en un tableau d'objets

Existe-t-il une commande dans Java pour la conversion d'une ArrayList en un tableau d'objets. Je sais comment faire cela en copiant chaque objet de la arrayList dans le tableau d'objets, mais je me demandais si ce serait fait automatiquement.

Je veux quelque chose comme ça:

ArrayList<TypeA> a;

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

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

Quelque chose comme le standard Collection.toArray (T []) devrait faire ce dont vous avez besoin (notez que ArrayList implémente Collection):

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

De plus, vous devriez envisager de définir a comme étant de type List<TypeA> Plutôt que ArrayList<TypeA>, Cela évite une définition spécifique à l'implémentation qui peut ne pas vraiment s'appliquer à votre application.

Voir aussi cette question sur l'utilisation de a.size() au lieu de 0 Car la taille du tableau est passée à a.toArray(TypeA[])

93
Mark Elliot

Vous pouvez utiliser ce code

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

Ensuite, si vous souhaitez récupérer cet objet dans TypeA, vérifiez-le simplement avec la méthode instanceOf.

10
Shashank T
8
Rachel

Convertir un ArrayList en un tableau d'objets

ArrayList a un constructeur qui prend une collection, donc l'idiome commun est:

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

Qui construit une copie de la liste créée par le tableau.

maintenant, Arrays.asList(array) encapsulera le tableau, donc les modifications apportées à la liste affecteront le tableau, et vice versa. Bien que vous ne puissiez pas ajouter ou supprimer

éléments d'une telle liste.

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