In Java überschreiben Arrays nicht die toString()
Wenn Sie also versuchen, einen direkt zu drucken, erhalten Sie die Meldung className
+ '@' + das Hexadezimalzeichen der [hashCode
](https://en.wikipedia.org/wiki/Java_hashCode()) des Arrays, wie definiert durch Object.toString()
:
int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray); // prints something like '[I@3343c8b3'
Aber normalerweise wollen wir eher etwas wie [1, 2, 3, 4, 5]
. Wie lässt sich das am einfachsten bewerkstelligen? Hier sind einige Beispiele für Eingaben und Ausgaben:
// 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 Stimmen
Was soll die Darstellung für andere Objekte als Strings sein? Das Ergebnis des Aufrufs von toString? In Anführungszeichen oder nicht?
3 Stimmen
Ja, die Objekte werden durch ihre toString()-Methode und ohne Anführungszeichen dargestellt (die Beispielausgabe wurde gerade bearbeitet).
2 Stimmen
In der Praxis, eng verbunden mit stackoverflow.com/questions/29140402/
1 Stimmen
Diese merkwürdige Ausgabe ist nicht unbedingt der Speicherort. Es ist die
hashCode()
in hexadezimaler Form. SieheObject#toString()
.1 Stimmen
Um ein eindimensionales oder mehrdimensionales Array in Java8 zu drucken, prüfen Sie stackoverflow.com/questions/409784/
0 Stimmen
Verwandt: Konvertieren eines Arrays von Strings in einen String in Java & Wie kann ich mein Java-Objekt drucken, ohne "SomeType@2f92e0f4" zu erhalten?
0 Stimmen
Verwandt: stackoverflow.com/questions/62191507/