Vor Java 8
Wir hätten verwenden können Arrays.toString(array)
um ein eindimensionales Array zu drucken und Arrays.deepToString(array)
für mehrdimensionale Arrays.
Java 8
Jetzt haben wir die Möglichkeit Stream
y lambda
um das Array zu drucken.
Drucken Eindimensionales Array:
public static void main(String[] args) {
int[] intArray = new int[] {1, 2, 3, 4, 5};
String[] strArray = new String[] {"John", "Mary", "Bob"};
//Prior to Java 8
System.out.println(Arrays.toString(intArray));
System.out.println(Arrays.toString(strArray));
// In Java 8 we have lambda expressions
Arrays.stream(intArray).forEach(System.out::println);
Arrays.stream(strArray).forEach(System.out::println);
}
Die Ausgabe ist:
[1, 2, 3, 4, 5]
(John, Mary, Bob)
1
2
3
4
5
John
Maria
Bob
Mehrdimensionales Array drucken Für den Fall, dass wir ein mehrdimensionales Array drucken wollen, können wir Arrays.deepToString(array)
als:
public static void main(String[] args) {
int[][] int2DArray = new int[][] { {11, 12}, { 21, 22}, {31, 32, 33} };
String[][] str2DArray = new String[][]{ {"John", "Bravo"} , {"Mary", "Lee"}, {"Bob", "Johnson"} };
//Prior to Java 8
System.out.println(Arrays.deepToString(int2DArray));
System.out.println(Arrays.deepToString(str2DArray));
// In Java 8 we have lambda expressions
Arrays.stream(int2DArray).flatMapToInt(x -> Arrays.stream(x)).forEach(System.out::println);
Arrays.stream(str2DArray).flatMap(x -> Arrays.stream(x)).forEach(System.out::println);
}
Nun ist zu beachten, dass die Methode Arrays.stream(T[])
die im Falle von int[]
gibt uns zurück Stream<int[]>
und dann Methode flatMapToInt()
bildet jedes Element von stream mit dem Inhalt eines gemappten Streams ab, der durch Anwendung der angegebenen Mapping-Funktion auf jedes Element erzeugt wird.
Die Ausgabe ist:
[[11, 12], [21, 22], [31, 32, 33]]
[[John, Bravo], [Mary, Lee], [Bob, Johnson]]
11
12
21
22
31
32
33
John
Bravo
Maria
Lee
Bob
Johnson
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/