Imprimer La Liste De Tableaux
J'ai une ArrayList qui contient l'Adresse objets.
Comment puis-je imprimer les valeurs de cette liste de tableaux, ce qui signifie que je suis l'impression du contenu du Tableau, dans ce cas, les numéros de.
Je ne pouvez l'obtenir qu'à imprimer l'adresse de mémoire de la table avec ce code:
for(int i = 0; i < houseAddress.size(); i++) {
System.out.print(houseAddress.get(i));
}
- voulez-vous l'adresse de l'emplacement dans la mémoire?
- désolé, je ne comprends pas ce que tu veux dire. la liste de tableaux est le stockage de l'adresse pointant vers le tableau, et je veux imprimer le contenu du tableau, mais je ne sais pas comment aller à ce sujet.
- J'ai essayé de reformuler la question pour la rendre plus claire.
- Par Adresse, il signifie adresse de la Chambre. Je pense que.
- Il suffit d'ajouter la déclaration complète de
houseAddress
y compris les génériques paramètre à votre question. - houseAddress est juste le nom de mon ArrayList, il contient une adresse pointant vers un Tableau qui contient les nombres réels, je veux être en mesure d'imprimer ces numéros dans la liste de tableaux.
- Ok, je suis complètement confus pour l'instant. Vous dites que vous avez un
ArrayList
, qui contient une adresse pointant vers un Tableau. Comment avez-vous d'obtenir l'adresse de la table que vous mettez dans leArrayList
? En Java, vous ne devriez pas être en mesure de mettre la main sur tout cru pointeurs (au moins pas facilement). - vous ne pouvez pas pointer vers les emplacements de la mémoire en Java.
- essayez d'inclure un plus grand exemple de code, qui peut nous aider à déduire de la question.
- S'il vous plaît, donnez-nous la déclaration de la
houseAddress
variable, et un exemple de code pour les éléments qu'il contient. - ok, dans mon constructeur de la ligne de déclarer mon ArrayList est houseAddress = new ArrayList<Nombre>(); avec les Nombres étant le nom du Tableau dans mon autre classe
Vous devez vous connecter pour publier un commentaire.
Arrays.toString(houseAddress.toArray())
toString()
pour imprimer le contenu de ses éléments. Donc, justelist.toString()
imprime letoString()
de tous ses éléments. Cela est vrai pour toutes les collections.Ajouter
toString()
méthode à votreaddress
classe alors nehouseAddress
comme un argument pourArrays.toString()
car il n'est pas de type Tableau.puisque vous n'avez pas à fournir une implémentation personnalisée pour
toString()
méthode qu'il appelle le défaut sur lequel on va imprimer l'adresse en mémoire de cet objetsolution
votre Adresse de classe remplacer la
toString()
méthode comme cecimaintenant, lorsque vous appelez
System.out.print( houseAddress.get(i) )
latoString()
de laAddress
objet sera appeléDe ce que je comprends que vous essayez d'imprimer une liste de tableaux de tableaux et le seul moyen d'afficher ce serait
assium que vous avez une liste des numéros comme ça
si vous imprimez la liste
Vous dire que
ArrayList
est de stocker les adresses des tableaux parce que c'est ce qui est, de retour de latoString
appel, ou parce que c'est ce que vous êtes stockage?Si vous avez un
ArrayList
de tableaux (par exemple,Alors d'imprimer le tableau de valeurs dont vous avez besoin à appeler
Arrays.deepToString
:Vous pouvez simplement lui donner comme:
Votre sortie ressemblera
[address1, address2, address3]
C'est parce que la classe ArrayList ou de sa super-classe aurait une fonction toString() redéfinie.
Espère que cette aide.
Mettre houseAddress.get(i) à l'intérieur de crochets et d'appel .fonction toString (): je.e Veuillez voir ci-dessous
Depuis Java 8, vous pouvez utiliser forEach() méthode de Itérable interface.
C'est une méthode par défaut. Comme argument, il prend un objet de la classe qui implémente l'interface fonctionnelle Consommateur. Vous pouvez mettre en œuvre des Consommateurs localement de trois façons:
Avec annonymous classe:
expression lambda:
ou en utilisant méthode de référence:
Cette façon de travaux d'impression pour toutes les implémentations de Itérable interface.
Tous d'entre eux, vous donne la façon de définir la manière dont les éléments seront imprimés, alors que toString() renforce l'impression de la liste dans un seul format.
Je ne suis pas sûr si j'ai bien compris la notion d'adresses (je suis en supposant que houseAddress ici), mais si vous cherchez une façon d'imprimer la liste de tableaux, ici vous allez:
Vous pouvez utiliser un Itérateur. C'est le plus simple et le moins controvercial chose à faire ici. Dire
houseAddress
a des valeurs de type de donnéesString
Remarque : Vous pouvez même utiliser un renforcement de la boucle de ce que je viens d'évoquer, dans une autre réponse
Cela a contribué à moi:
Vous pouvez même utiliser un renforcement de la boucle ou un itérateur comme
Vous pouvez le modifier à tout type de données houseAddress est et il évite unnecesarry conversions
si vous faites l' @Override public String toString() que les commentaires,
vous aurez les mêmes résultats que vous avez fait.
Mais si vous mettez en œuvre votre méthode toString (), il va fonctionner.
public class PrintingComplexArrayList {
}
classe Adresse{
private int addr;
Adresse publique(int i)
{
addr = i;
}
}
Assurez-vous d'avoir un getter dans la Maison de l'adresse de classe, puis:
vous pouvez utiliser le format d'impression si vous voulez juste pour imprimer l'élément sur la console.