Print Array in Java
In this tutorial, we’ll learn how to print the elements of a given Array in Java.
Simplest way
The Arrays.toString()
and Arrays.deepToString()
methods are the simplest way to print Arrays in Java and work well for all type of Arrays i.e. int, double, byte, String, etc.
Quick examples
System.out.println(Arrays.toString(new int[]{1, 2, 3}));
// prints [1, 2, 3]
System.out.println(Arrays.deepToString(new int[][]{{1, 2}, {3, 4}, {5, 6}}));
// prints [[1, 2], [3, 4], [5, 6]]
System.out.println(Arrays.deepToString(new int[][][]{{{1, 2}, {3}, {4}}, {{5, 6, 7}, {8}}, {{9, 10}}}));
// prints [[[1, 2], [3], [4]], [[5, 6, 7], [8]], [[9, 10]]]
Arrays.toString() for simple Array
The Arrays.toString()
method is the simplest way to print elements of an Array in a single line in Java:-
String[] strArray = new String[] {"John", "Mary", "Bob"};
System.out.println(Arrays.toString(strArray));
// prints [John, Mary, Bob]
Limitation of Array.toString()
The Arrays.toString()
method works well with simple Array but prints ClassName@hashCode
for nested Arrays like this:-
String[][] nestedArray = new String[][] {{"John", "Mary"}, {"Alice", "Bob"}};
System.out.println(Arrays.toString(nestedArray));
// prints something like [[Ljava.lang.String;@566776ad, [Ljava.lang.String;@6108b2d7]
Nothing to worry about! We have Arrays.deepToString()
to the rescue.
Arrays.deepToString() for nested Array
The Arrays.deepToString()
method can be used to print all the nested elements of a multi-dimensional Array in a single line in Java:-
String[][] nestedArray = new String[][] {{"John", "Mary"}, {"Alice", "Bob"}};
System.out.println(Arrays.deepToString(nestedArray));
// prints [[John, Mary], [Alice, Bob]]
String[][][] deepNestedArray = new String[][][] {{{"John"}, {"Mary"}, {"Alice"}}, {{"Bob"}, {"Adam"}}, {{"Emily"}}};
System.out.println(Arrays.deepToString(deepNestedArray));
// prints [[[John], [Mary], [Alice]], [[Bob], [Adam]], [[Emily]]]
Other ways
There are many other ways to print an Array in Java:-
- Use
Arrays.toString()
andArrays.deepToString()
methods to convert an Array to a comma-separated String and print. - Use
Arrays.asList()
andList.of()
methods to convert an Array to a List and use its predefinedtoString()
method to print elements in a comma-separated String. - Use
String.join()
method to join elements of a String Array by any delimiter of your choice and print in a single line. - Use Java Streams to map elements of an Array to String, join by any delimiter of your choice, and print in a single line.
- Use forEach loop to iterate through elements of an Array and print each element in a new line.
Let’s look at the examples:-
// Primitive int
int[] ints = new int[] {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(ints));
System.out.println(IntStream.of(ints).mapToObj(Integer::toString).collect(Collectors.joining(", ")));
System.out.println(IntStream.of(ints).boxed().map(Object::toString).collect(Collectors.joining(", ")));
IntStream.of(ints).forEach(System.out::println);
Arrays.stream(ints).forEach(System.out::println);
// Object String
String[] strs = new String[] {"John", "Mary", "Bob"};
System.out.println(Arrays.toString(strs));
System.out.println(Arrays.asList(strs));
System.out.println(List.of(strs));
System.out.println(String.join(", ", strs));
System.out.println(Stream.of(strs).collect(Collectors.joining(", ")));
Stream.of(strs).forEach(System.out::println);
Arrays.stream(strs).forEach(System.out::println);
Arrays.asList(strs).forEach(System.out::println);
List.of(strs).forEach(System.out::println);
// Object Enum
DayOfWeek [] days = { FRIDAY, MONDAY, TUESDAY };
System.out.println(Arrays.toString(days));
System.out.println(Arrays.asList(days));
System.out.println(Stream.of(days).map(Object::toString).collect(Collectors.joining(", ")));
System.out.println(Arrays.toString(days));
Stream.of(days).forEach(System.out::println);
Arrays.stream(days).forEach(System.out::println);
Arrays.asList(days).forEach(System.out::println);
List.of(days).forEach(System.out::println);