Is there a difference between
int[] array = new int[10]; and
int array[] = new int[10]; ?
Both do work, and the result is exactly the same. Which one is quicker or better? Is there a style guide which recommends one?
28 Answers
Both are equivalent. Take a look at the following:
int[] array; // is equivalent to int array[]; int var, array[]; // is equivalent to int var; int[] array; int[] array1, array2[]; // is equivalent to int[] array1; int[][] array2; public static int[] getArray() { // .. } // is equivalent to public static int getArray()[] { // .. } 1Here are examples of declarations of array variables that do not create arrays:
int[ ] ai; // array of int short[ ][ ] as; // array of array of short Object[ ] ao, // array of Object otherAo; // array of Object Collection<?>[ ] ca; // array of Collection of unknown type short s, // scalar short aas[ ][ ]; // array of array of short Here are some examples of declarations of array variables that create array objects:
Exception ae[ ] = new Exception[3]; Object aao[ ][ ] = new Exception[2][3]; int[ ] factorial = { 1, 1, 2, 6, 24, 120, 720, 5040 }; char ac[ ] = { 'n', 'o', 't', ' ', 'a', ' ', 'S', 't', 'r', 'i', 'n', 'g' }; String[ ] aas = { "array", "of", "String", }; The [ ] may appear as part of the type at the beginning of the declaration, or as part of the declarator for a particular variable, or both, as in this example:
byte[ ] rowvector, colvector, matrix[ ]; This declaration is equivalent to:
byte rowvector[ ], colvector[ ], matrix[ ][ ]; 1They are both basically same, there is no difference in performance of any sort, the recommended one however is the first case as it is more readable.
int[] array = new int[10]; FROM JLS:
1The [] may appear as part of the type at the beginning of the declaration, or as part of the declarator for a particular variable, or both.
Both are the same. I usually use int[] array = new int[10];, because of better (contiguous) readability of the type int[].
No, there is no difference. But I prefer using int[] array as it is more readable.
There is no difference between these two declarations, and both have the same performance.
There is virtually no difference.
In both examples, you are assigning a new int[10] to a reference variable.
Assigning to a reference variable either way will be equal in performance.
int[] array = new int[10]; The notation above is considered best practice for readability.
Cheers