Difference between int[] variableName; and int variableName[]; Difference between int[] variableName; and int variableName[]; arrays arrays

Difference between int[] variableName; and int variableName[];


Although both syntaxes are equivalent, the int[] variableName; syntax is preferred. The int variableName[]; syntax is allowed just for making comfortable all the C/C++ programmers transitioning to Java.

One could argue that int[] x clearly states that integer array is the type of x, whereas in int x[] the actual type is split in two parts, one before and the other after the x variable, reading like integer is the type of the variable x which is an array making the declaration less readable and potentially confusing to a newcomer.

The readability problem is exacerbated if the array has more dimensions, for example all of these declarations are equivalent and valid:

int x[][][];int[] x[][];int[][] x[];int[][][] x;  // this one is the easiest to read!

Also notice that the same considerations apply to all these valid, equivalent method declarations (the return type is the same in all cases) - but once again the last one is simpler to read:

int m() [][][] {return null;}int[] m() [][] {return null;}int[][] m() [] {return null;}int[][][]  m() {return null;}  // this one is the easiest to read!


The only case where the postfix syntax is essential is a very non-essential use case:

class ArrayShowcase {  private int i, ints[], intints[][];}

Do we need such declarations? Well, we could live without them, I think. I've never once needed it in the many hundreds of thousands of lines of code I've written in my professional carreer.


As already mentioned they are both the same and the first one is preferred. I'd like to add that it's also essential to be consistent with the respective usage. If you change a code base that uses one of the two, stay with the same convention.