+1 vote
in JAVA by
How to do Printing all elements of an array in one println statement in Java

public class Test {

    public static void main(String[] args) {

        int[] a= new int[]{1,2,3};

        System.out.println(a);

    }

}

I expected to take a compile or run-time error.I took an output.It's "[I@1ba4806".What's the reason of it in Java?

1 Answer

0 votes
by

9

That's the default implementation of toString() in Object you're seeing. You can use Arrays.toString for a readable result (make sure to import java.util.Arrays):

System.out.println(Arrays.toString(a));

Because currently the toString method from Object class is getting invoked, it looks like this

public String toString() {

    return getClass().getName() + "@" + Integer.toHexString(hashCode());

}

Thats why you see [I@1ba4806

You can print array content using Arrays.toString which is overloaded method in Arrays class to print the array.

System.out.println(Arrays.toString(a));

For int[] parameters the method implementation looks like

public static String toString(int[] a) {

    if (a == null)

        return "null";

    int iMax = a.length - 1;

    if (iMax == -1)

        return "[]";

    StringBuilder b = new StringBuilder();

    b.append('[');

    for (int i = 0; ; i++) {

        b.append(a[i]);

        if (i == iMax)

            return b.append(']').toString();

        b.append(", ");

    }

}

Related questions

0 votes
asked May 22, 2022 in JAVA by AdilsonLima
0 votes
asked Feb 8, 2021 in JAVA by SakshiSharma
...