En Java, les tableaux ne surchargent pas toString()
Ainsi, si vous essayez d'en imprimer un directement, vous obtiendrez le message suivant className
+ '@' + l'hexagone de l'adresse [hashCode
](https://en.wikipedia.org/wiki/Java_hashCode()) du tableau, tel que défini par Object.toString()
:
int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray); // prints something like '[I@3343c8b3'
Mais en général, nous voulons plutôt quelque chose comme [1, 2, 3, 4, 5]
. Quel est le moyen le plus simple de le faire ? Voici quelques exemples d'entrées et de sorties :
// Array of primitives:
int[] intArray = new int[] {1, 2, 3, 4, 5};
//output: [1, 2, 3, 4, 5]
// Array of object references:
String[] strArray = new String[] {"John", "Mary", "Bob"};
//output: [John, Mary, Bob]
9 votes
Comment voulez-vous que la représentation soit pour les objets autres que les chaînes de caractères ? Le résultat de l'appel à toString ? Entre guillemets ou non ?
3 votes
Oui, les objets seraient représentés par leur méthode toString() et sans guillemets (il suffit de modifier l'exemple de sortie).
2 votes
Dans la pratique, elle est étroitement liée à stackoverflow.com/questions/29140402/
1 votes
Cette sortie bizarre n'est pas nécessairement l'emplacement de la mémoire. C'est le
hashCode()
en hexadécimal. VoirObject#toString()
.1 votes
Pour imprimer un tableau unidimensionnel ou multidimensionnel en java8, vérifiez les points suivants stackoverflow.com/questions/409784/
0 votes
En rapport : Convertir un tableau de chaînes de caractères en une chaîne de caractères en Java & Comment imprimer mon objet Java sans obtenir "SomeType@2f92e0f4" ?
0 votes
En rapport : stackoverflow.com/questions/62191507/