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);
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[])
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.
Oui. ArrayList
a une méthode toArray()
.
http://Java.Sun.com/javase/6/docs/api/Java/util/ArrayList.html
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
TypeA[] array = (TypeA[]) a.toArray();