Java: int [] array vs int array []
Возможный дубликат:
Разница между массивом int [] и int array []
Есть ли разница между
int[] array = new int[10];
и
int array[] = new int[10];
?
Оба работают, и результат точно такой же. Какой из них быстрее или лучше? Есть ли стиль руководства, который рекомендует один?
Ответы
Ответ 1
Оба эквивалентны. Посмотрите на следующее:
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()[]
{
// ..
}
Ответ 2
От JLS http://docs.oracle.com/javase/specs/jls/se5.0/html/arrays.html#10.2
Вот примеры объявлений переменных массива, которые не создают массивы:
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
Вот несколько примеров объявлений переменных массива, которые создают объекты массива:
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", };
[] Может появиться как часть типа в начале объявления, или как часть объявления для определенной переменной, или и того и другого, как в этом примере:
byte[ ] rowvector, colvector, matrix[ ];
Эта декларация эквивалентна:
byte rowvector[ ], colvector[ ], matrix[ ][ ];
Ответ 3
Они оба в основном одинаковы, нет никакой разницы в производительности любого типа, рекомендуемый, однако, является первым случаем, поскольку он более читабельен.
int[] array = new int[10];
FROM JLS:
[] может отображаться как часть типа в начале декларации или как часть декларатора для конкретной переменной, или и то, и другое.
Ответ 4
Оба одинаковы.
Обычно я использую int[] array = new int[10];
из-за лучшей (непрерывной) читаемости типа int[]
.
Ответ 5
Нет, нет никакой разницы. Но я предпочитаю использовать int[] array
, поскольку это более читаемо.
Ответ 6
Нет никакой разницы между этими двумя объявлениями, и обе имеют одинаковую производительность.
Ответ 7
Практически никакой разницы нет.
Ответ 8
В обоих примерах вы присваиваете ссылочную переменную new int[10]
.
Присвоение ссылочной переменной в любом случае будет одинаковым по производительности.
int[] array = new int[10];
Обозначения выше считаются наилучшей практикой для удобочитаемости.
Приветствия