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

arrays, coding-style, declaration, java, variables

Solution

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!

Problem

Is there any difference between between these two array declaration syntax in java? ``` int[] variableName; ``` and ``` int variableName[]; ``` Which one is preferred?

Original source

Related problems