Member 14078344 Ответов: 2

Определение массива в java : в чем разница между следующими 2 подходами при создании массива?


В чем разница между следующими 2 подходами при создании массива?
Что предпочтительнее в зависимости от использования?

Подход 1:


int a[]= новый int[5];
a[0] = 98;
a[1] = 97;
a[2] = 99;
a[3] = 94;
a[4] = 96;

Подход 2:
int a[]={98,97,99,94,96};

Что я уже пробовал:

Я попробовал оба способа, но хочу знать, какой из них лучше использовать?

2 Ответов

Рейтинг:
2

CPallini

Насколько мне известно, разницы быть не должно. Однако подход 2, на мой взгляд, выглядит лучше.


Рейтинг:
0

Afzaal Ahmad Zeeshan

Почему бы тебе не попробовать и не посмотреть самому? В первом подходе вы создаете массив и инициализируете его значениями в том же go.

В первом подходе вы создаете массив—int является примитивным типом, поэтому они не являются null-ed, и вы в конечном итоге создаете объект и по умолчанию равняетесь нулю. Попробуйте этот код,

int[] array = new int[5]; // Defaults to 0
        
System.out.println(array[3]); // 4th object exists; 0.
// Outputs 
// 0
Второй подход является одновременно читабельным и хорошим для JVM, в этом случае вы создаете массив и инициализируете его значениями по умолчанию.
int[] array =  { 1, 2, 3, 4, 5 };
        
System.out.println(array[3]);
// Outputs 
// 4
Это означает, что JVM настраивает вещи для вас. Чтобы сделать вещи простыми, они оба такие же, как,
int a;
a = 5;

// And
int a = 5;
Какой из них лучше? Во-первых, это хорошо, если вы не знаете значения во время объявления, а во-вторых, лучше, если вы знаете. Второй подход был бы избыточным вызовом (согласно компилятору), если вам также нужно взять входные данные и установить их в следующем вызове. Я оставляю этот выбор в ваших руках.

На мой взгляд, перейдите ко второму подходу, если вы не принимаете входные данные от пользователей для каждого элемента, то имеет смысл инициализировать массив и считывать входные данные из потока. Кроме того, я всегда был бы признателен за код, который имеет второй подход.

Вы можете играть с этим онлайн, http://tpcg.io/wPt4ZI.