How To Print An Array In Java

In this article, we will show you a few ways to print a Java Array.

Table of contents.

  • 1. JDK 1.5 Arrays.toString
  • 2. Java 8 Stream APIs
  • 3. Java 8 Stream APIs – Collectors.joining
  • 4. Jackson APIs
  • 5. References

1. JDK 1.5 Arrays.toString

We can use Arrays.toString to print a simple array and Arrays.deepToString for 2d or nested arrays.

PrintArray1.java package com.mkyong; import java.util.Arrays; public class PrintArray1 { public static void main(String[] args) { // string array String[] strArray = new String[]{"Java", "Node", "Python", "Ruby"}; System.out.println(Arrays.toString(strArray)); // Output : [Java, Node, Python, Ruby] // int Array int[] intArray = {1, 3, 5, 7, 9}; System.out.println(Arrays.toString(intArray)); // Output : [1, 3, 5, 7, 9] // 2d array, need Arrays.deepToString String[][] strArrayDeep = new String[][]{{"mkyong1", "mkyong2"}, {"mkyong3", "mkyong4"}}; System.out.println(Arrays.toString(strArrayDeep)); // Output : [[Ljava.lang.String;@23fc625e, [Ljava.lang.String;@3f99bd52] System.out.println(Arrays.deepToString(strArrayDeep)); // Output : [[mkyong1, mkyong2], [mkyong3, mkyong4] int[][] intArrayDeep = new int[][]{{1, 3, 5, 7, 9}, {2, 4, 6, 8, 10}}; System.out.println(Arrays.toString(intArrayDeep)); // Output : [[I@3a71f4dd, [I@7adf9f5f] System.out.println(Arrays.deepToString(intArrayDeep)); // Output : [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]] } }

Output

Terminal [Java, Node, Python, Ruby] [1, 3, 5, 7, 9] [[Ljava.lang.String;@41629346, [Ljava.lang.String;@404b9385] [[mkyong1, mkyong2], [mkyong3, mkyong4]] [[I@682a0b20, [I@3d075dc0] [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]

2. Java 8 Stream APIs

In Java 8, we can use Stream APIs to convert a simple array into a stream and print it out one by one; for 2d or nested array, we need to use flatMap.

PrintArray2.java package com.mkyong; import java.util.Arrays; public class PrintArray2 { public static void main(String[] args) { // simple array String[] strArray = new String[]{"Java", "Node", "Python", "Ruby"}; Arrays.stream(strArray).forEach(System.out::println); int[] intArray = {1, 3, 5, 7, 9}; Arrays.stream(intArray).forEach(System.out::println); //2d array String[][] strArrayDeep = new String[][]{{"mkyong1", "mkyong2"}, {"mkyong3", "mkyong4"}}; Arrays.stream(strArrayDeep).flatMap(Arrays::stream).forEach(System.out::println); int[][] intArrayDeep = new int[][]{{1, 3, 5, 7, 9}, {2, 4, 6, 8, 10}}; Arrays.stream(intArrayDeep).flatMapToInt(Arrays::stream).forEach(System.out::println); // lambda // Arrays.stream(intArrayDeep).flatMapToInt(x -> Arrays.stream(x)).forEach(System.out::println); } }

Output

Terminal Java Node Python Ruby 1 3 5 7 9 mkyong1 mkyong2 mkyong3 mkyong4 1 3 5 7 9 2 4 6 8 10

3. Java 8 Stream APIs – Collectors.joining

The below example uses the Collectors.joining to join arrays into a string and print it out.

PrintArray3.java package com.mkyong; import java.util.Arrays; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; public class PrintArray3 { public static void main(String[] args) { // simple array String[] strArray = new String[]{"Java", "Node", "Python", "Ruby"}; String strArrayCollect = Arrays.stream(strArray).collect(Collectors.joining(", ")); System.out.println(strArrayCollect); // alternative System.out.println(String.join(", ", strArray)); int[] intArray = {1, 3, 5, 7, 9}; String intArrayCollect = Arrays.stream(intArray) .mapToObj(Integer::toString) .collect(Collectors.joining(", ")); System.out.println(intArrayCollect); //2d array String[][] strArrayDeep = new String[][]{{"mkyong1", "mkyong2"}, {"mkyong3", "mkyong4"}}; String strArrayDeepCollect = Arrays.stream(strArrayDeep) .flatMap(Arrays::stream) .collect(Collectors.joining(", ")); System.out.println(strArrayDeepCollect); int[][] intArrayDeep = new int[][]{{1, 3, 5, 7, 9}, {2, 4, 6, 8, 10}}; String intArrayDeepCollect = Arrays.stream(intArrayDeep).flatMapToInt(Arrays::stream) .mapToObj(Integer::toString) .collect(Collectors.joining(", ")); System.out.println(intArrayDeepCollect); } }

Output

Terminal Java, Node, Python, Ruby Java, Node, Python, Ruby 1, 3, 5, 7, 9 mkyong1, mkyong2, mkyong3, mkyong4 1, 3, 5, 7, 9, 2, 4, 6, 8, 10

4. Jackson APIs

We can use the Jackson API ObjectMapper to print anything.

pom.xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency> PrintUtils.java package com.mkyong; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class PrintUtils { private static final ObjectMapper om = new ObjectMapper(); public static void print(Object object) { String result; try { result = om.writerWithDefaultPrettyPrinter().writeValueAsString(object); System.out.println(result); } catch (JsonProcessingException e) { e.printStackTrace(); } } } PrintArray4.java package com.mkyong; public class PrintArray4 { public static void main(String[] args) { // simple array String[] strArray = new String[]{"Java", "Node", "Python", "Ruby"}; PrintUtils.print(strArray); int[] intArray = {1, 3, 5, 7, 9}; PrintUtils.print(intArray); //2d array or nested array String[][] strArrayDeep = new String[][]{{"mkyong1", "mkyong2"}, {"mkyong3", "mkyong4"}}; PrintUtils.print(strArrayDeep); int[][] intArrayDeep = new int[][]{{1, 3, 5, 7, 9}, {2, 4, 6, 8, 10}}; PrintUtils.print(intArrayDeep); } }

Output

Terminal [ "Java", "Node", "Python", "Ruby" ] [ 1, 3, 5, 7, 9 ] [ [ "mkyong1", "mkyong2" ], [ "mkyong3", "mkyong4" ] ] [ [ 1, 3, 5, 7, 9 ], [ 2, 4, 6, 8, 10 ] ]

5. References

  • Jackson – How to parse JSON
  • Arrays JavaDoc
  • Jackson 2 GitHub
  • Java 8 flatMap example

Tag » How To Print An Array