De liste de tableaux de Tableau
Je veux savoir si il est sûr/conseillé de convertir de liste de tableaux à la Matrice?
J'ai un fichier texte dont chaque ligne d'une chaîne de caractères:
1236
1233
4566
4568
....
Je veux les lire dans le tableau de la liste, puis-je le convertir en Tableau. Est-il conseillé/juridique pour le faire?
grâce
- Vous pouvez, mais vous n'avez pas donné assez d'information pour vous dire si c'est une bonne idée ou pas.
- ArrayLists sont beaux. La seule raison que je vois pour la conversion d'un Tableau est si vous avez besoin d'appeler une méthode qui exige.
Vous devez vous connecter pour publier un commentaire.
Oui il est sûr de convertir un
ArrayList
àArray
. Si c'est une bonne idée dépend de l'utilisation prévue. Avez-vous besoin pour les opérations quiArrayList
offre? Si oui, garder unArrayList
. D'autre convertir de suite!!!sorties
The method toArray(T[]) in the type ArrayList<Character> is not applicable for the arguments (char[])
C'est le meilleur moyen (à mon humble avis).
Ce code fonctionne aussi:
Mais moins efficace: le tableau de chaîne est créé deux fois: la première fois, zéro-longueur du tableau est créé, puis le réel la taille du tableau est créé, rempli et retourné. Donc, si depuis vous connaissez la taille nécessaire (à partir de
list.size()
), vous devez créer une matrice qui est assez grand pour mettre tous les éléments. Dans ce cas, il n'est pas ré-alloué.new String[0]
etnew String[size]
new String[0]
est en fait plus efficace. shipilev.net/blog/2016/arrays-wisdom-ancientsSi c'est une "bonne idée" serait vraiment dépend de votre cas d'utilisation.
Object
en supposant que v est une liste de tableaux:
Il y a deux styles de convertir une collection dans un tableau: soit à l'aide d'un pré-tableau de taille (comme
c.toArray(new String[c.size()])
) ou à l'aide d'un tableau vide (commec.toArray(new String[0])
).Dans les anciennes versions de Java à l'aide de pré-tableau de taille a été recommandé, comme l'appel de réflexion qui est nécessaire pour créer un tableau de taille appropriée a été très lent. Cependant depuis la fin des mises à jour de OpenJDK 6 cet appel a été intrinsified, faisant de la performance du tableau vide version de la même chose et parfois même mieux, par rapport à la pré-version de taille moyenne. Aussi en passant pré-tableau de taille est dangereux pour un simultanées ou synchronisé de collecte de données, la race est possible entre la taille et toArray appel qui peut conduire à une les valeurs null à la fin du tableau, si la collection a été simultanément diminué au cours de l'opération.
Vous pouvez suivre le style uniforme: soit à l'aide d'un tableau vide (ce qui est recommandé dans moderne Java) ou à l'aide d'un pré-tableau de taille (qui pourrait être plus rapide dans les anciennes versions de Java ou de la non-HotSpot basé Jvm).
Cela dépend de ce que vous voulez faire si vous avez besoin de manipuler le tableau plus tard, il en coûterait plus d'effort que de le garder à la chaîne dans la liste de tableaux. Vous avez également accès aléatoire avec une liste de tableaux par
list.get( index );
L'interface de Collecte comprend la méthode toArray() pour convertir une nouvelle collection dans un tableau. Il existe deux formes de cette méthode. Le pas d'argument version sera de retour les éléments de la collection dans un tableau d'Objets: public Object[ ] toArray(). Le tableau retourné ne peut pas lancer de tout autre type de données. C'est la version la plus simple. La deuxième version vous oblige à passer dans le type de données de la matrice que vous désirez retourner: public Object [ ] toArray(Objet de type[ ]).
de référence, reportez-vous à ce lien http://techno-terminal.blogspot.in/2015/11/how-to-obtain-array-from-arraylist.html
Une approche possible serait d'ajouter le Second pour la Boucle lorsque l'impression est effectuée à l'intérieur de la première boucle. Comme ceci: