In Java overschrijven arrays toString()
niet, dus als je er een direct probeert af te drukken, krijg je de className
+ '@' + de hex van de hashCode
van de array, zoals gedefinieerd door Object.toString()
:
int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray); // prints something like '[I@3343c8b3'
Maar meestal willen we eigenlijk iets meer als [1, 2, 3, 4, 5]
. Wat's de eenvoudigste manier om dat te doen? Hier zijn wat voorbeeld inputs en outputs:
// 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]
Sinds Java 5 kun je Arrays.toString(arr)
of Arrays.deepToString(arr)
gebruiken voor arrays binnen arrays. Merk op dat de Object[]
versie .toString()
aanroept op elk object in de array. De uitvoer is zelfs gedecoreerd op precies de manier die jij vraagt.
Voorbeelden:
String[] array = new String[] {"John", "Mary", "Bob"};
System.out.println(Arrays.toString(array));
Uitvoer:
[John, Mary, Bob]
String[][] deepArray = new String[][] {{"John", "Mary"}, {"Alice", "Bob"}};
System.out.println(Arrays.toString(deepArray));
//output: [[Ljava.lang.String;@106d69c, [Ljava.lang.String;@52e922]
System.out.println(Arrays.deepToString(deepArray));
Uitvoer:
[[John, Mary], [Alice, Bob]]
dubbel
Array: double[] doubleArray = { 7.0, 9.0, 5.0, 1.0, 3.0 };
System.out.println(Arrays.toString(doubleArray));
Uitvoer:
[7.0, 9.0, 5.0, 1.0, 3.0 ]
int
Array: int[] intArray = { 7, 9, 5, 1, 3 };
System.out.println(Arrays.toString(intArray));
Uitvoer:
[7, 9, 5, 1, 3 ]
Controleer altijd eerst de standaard bibliotheken. Probeer maar:
System.out.println(Arrays.toString(array));
of als je array andere arrays als elementen bevat:
System.out.println(Arrays.deepToString(array));