1. Overview

In Java, an array is a static data structure that stores elements of the same type in contiguous memory locations. This arrangement ensures that elements are stored sequentially in memory and can be accessed directly using their index.

However, in Java, if we try to print an array object directly, it doesn’t print the array’s content but instead prints a string that contains the array type and its memory reference. *Therefore, to display the elements of an array, we can use methods like Arrays.toString(), Stream.forEach(), Arrays.deepToString(), or iterate through the arrays using loops*.

In this tutorial, we’ll discuss several methods to print the content of a single or multi-dimensional array in Java.

2. Printing the Content of an Array in Java

Java offers several methods to display the elements of a single-dimensional array. These methods include loops, Arrays.toString(), stream.forEach(), and Arrays.asList().

2.1. Using for Loop

Loops are the most convenient way of traversing an iterable like an array. We can use the print() method within the for loop to iterate through an array and print its elements on the console:

String[] empArray = {"Anees", "Peter", "Asghar", "Joseph", "Alex"};
for (int i = 0; i < empArray.length; i++) {
    System.out.print(empArray[i] + " ");
}

In this example, we define a string-type array empArray, and initialize it with five employee names. Moreover, we use the for loop to iterate over the entire array and print its content using the print() method:

Anees Peter Asghar Joseph Alex

Overall, this is the simplest way of printing array elements that don’t require any extra libraries or functionalities.

2.2. Using for-each Loop

In Java, we can use a for-each or the enhanced for loop to iterate directly over each array element. Inside this loop, we can use the print() or println() method to print the array’s elements:

String[] empArray = {"Anees", "Peter", "Asghar", "Joseph", "Alex"};
for (String arr : empArray) {
    System.out.println(arr);
}

The output shows that the for-each loop processes each element of the array one by one and then prints each element on the new line using the println() method:

Anees
Peter
Asghar
Joseph
Alex

This method offers a simple, readable way to iterate over arrays and collections while reducing errors and ensuring type safety.

2.3. Using Arrays.toString()

The Java Arrays class provides a static method named toString() that can be used to print the array content. We can pass an array of a primitive type to this method and get the string representation of array elements. Furthermore, this string representation can easily be printed using methods like print() or println():

int[] empIDs = {10, 12, 13, 15, 17};
String strIDs = Arrays.toString(empIDs);
System.out.println(strIDs);

Here, we convert the empIDs array into a string using the Arrays.toString() method, and then print it using the println() method:

[10, 12, 13, 15, 17]

This method provides a concise approach with minimal code, making it ideal for quick debugging or when a compact output format is needed.

2.4. Using Stream.forEach()

In Java 8 and later versions, we can use the Arrays.stream() method to convert the given array into a stream, and then use the Stream API’s forEach() method to traverse and print the contents of an array:

String[] empArray = {"Anees", "Peter", "Asghar", "Joseph", "Alex"};
Arrays.stream(empArray).forEach(System.out::println);

We convert the empArray array into a stream and print each array element to the console using System.out.println() method:

Anees
Peter
Asghar
Joseph
Alex

All in all, this method provides concise and readable code with functional programming benefits.

2.5. Using Arrays.asList()

Java’s Arrays class provides a static method named Arrays.asList() that converts any array into a fixed-size list backed by a given array. However, if we change the converted list, it affects the array and vice versa, but we can’t resize the list. The converted list can easily be printed using the print() or println() method:

String[] empArray = {"Anees", "Peter", "Asghar", "Joseph", "Alex"};
System.out.println(Arrays.asList(empArray));

This time, we wrap the Arrays.asList() method within the println() method to print the array’s content on the console:

[Anees, Peter, Asghar, Joseph, Alex]

This method has minimal performance overhead as it doesn’t create a new collection.

2.6. Using String.join()

Java’s String class offers a join() method that returns a string combined with a specific delimiter. We can also use this method to print the array content as a string, separating each element with the given delimiter:

String[] empArray = {"Anees", "Peter", "Asghar", "Joseph", "Alex"};
String outputString = String.join(", ", empArray);
System.out.println(outputString);

Here, we use the join() method to combine the elements of the empArray as a string, with each element separated by a comma followed by a space. Finally, we use the println() method to print the returned string on the console:

Anees, Peter, Asghar, Joseph, Alex

The String.join() method is efficient for printing array elements. It creates a single string with a specified delimiter. Thus, it avoids the need for loops or extra data structures.

3. Printing Content of Multi-Dimensional Array in Java

A multidimensional array is an array of arrays in which each element is itself an array. *We can print a multi-dimensional array in Java using several methods, such as Nested Loops, Arrays.deepToString(), Java 8 Streams, or Arrays.toString()*.

4. Conclusion

Java supports several methods to print the content of a single or multi-dimensional array. In this article, we discussed multiple approaches like Arrays.toString(), Stream.forEach(), Arrays.deepToString(), loops, etc., to print the array’s content. However, the choice of method depends on the user’s needs, as loops offer a good balance between simplicity and efficiency, while other methods offer more concise solutions.

As usual, the complete example code is available over on GitHub.