Is there any difference between between these two array declaration syntax in java?
int[] variableName;
and
int variableName[];
Which one is preferred?
Is there any difference between between these two array declaration syntax in java?
int[] variableName;
and
int variableName[];
Which one is preferred?
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.
They are semantically identical. The int variablename[] syntax was only added to help C programmers get used to java.
int[] variable name is much preferable, and less confusing.
They both mean the same thing, so there is no difference syntactically. However, I have seen developers using either one or the other.
I would use int[] var as it is more explicit. It tells teh reader that it is an array of int. If you have the [] next to the variable name the user has to scan accross the line to see the type of this array. Personally I would (and most java programmers I know) use int[]
The difference is conceptual, for human reading. They define the same thing, but
int[] variableName
keeps the type of variableName
consistent in contrast to
int variableName[]
where, there is stated that the array variable is of type int
.