Подтвердить что ты не робот

Java: int [] array vs int array []

Возможный дубликат:
Разница между массивом int [] и int array []

Есть ли разница между

int[] array = new int[10];

и

int array[] = new int[10];

?

Оба работают, и результат точно такой же. Какой из них быстрее или лучше? Есть ли стиль руководства, который рекомендует один?

4b9b3361

Ответ 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];

Обозначения выше считаются наилучшей практикой для удобочитаемости.

Приветствия