Инициализация массива переменного размера в Java

У меня есть массив целых чисел в Java, который инициализируется следующим образом:

public int MyNumbers[] = {0,0,0,0};

Я хотел бы, однако, инициализировал бы массив к количеству переменной длины, обнуляет.

private int number_of_elements = 4;
public int MyNumbers[] = {0} * number_of_elements; // ????

Я невежествен, как сделать этот являющийся в новинку для Java, прибывающего из C. Какие-либо предложения?

Править

Я знаю, что мог использовать a for цикл, но я надеющийся был простым способом сделать это.

15
задан daveslab 7 January 2010 в 20:36
поделиться

4 ответа

int[] myNumbers = new int[size];
Arrays.fill(myNumbers, 0);

см. http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html

32
ответ дан 1 December 2019 в 00:37
поделиться
int[] MyNumbers = new int[number_of_elements];
.
6
ответ дан 1 December 2019 в 00:37
поделиться

В качестве альтернативы можно использовать ArrayList , чтобы не беспокоиться о размере заранее. Это позволит динамически расширять внутренний массив при необходимости.

List<Integer> numbers = new ArrayList<Integer>();
numbers.add(0);
numbers.add(2);
// ...

Вот учебное пособие, чтобы узнать больше об API коллекций, частью которого является ArrayList.

.
5
ответ дан 1 December 2019 в 00:37
поделиться
int[] MyNumbers = new int[number_of_elements];

Так как это массив int, то элементы массива автоматически получат значение по умолчанию для int в Java в 0.

Если бы это был массив объектов Integer, то после его создания пришлось бы заполнять массив, так как значением по умолчанию для обращения к объекту является null. Для установки значений по умолчанию в массиве Object можно сделать следующее:

Integer[] MyNumbers = new Integer[number_of_elements];
java.util.Arrays.fill(MyNumbers, new Integer(0));

Конечно, такую же технику можно использовать для инициализации массива int на значения, отличные от нуля:

int[] MyNumbers = new int[number_of_elements];
java.util.Arrays.fill(MyNumbers, 1);
2
ответ дан 1 December 2019 в 00:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: