У меня есть массив целых чисел в 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
цикл, но я надеющийся был простым способом сделать это.
int[] myNumbers = new int[size];
Arrays.fill(myNumbers, 0);
см. http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html
В качестве альтернативы можно использовать ArrayList
, чтобы не беспокоиться о размере заранее. Это позволит динамически расширять внутренний массив при необходимости.
List<Integer> numbers = new ArrayList<Integer>();
numbers.add(0);
numbers.add(2);
// ...
Вот учебное пособие, чтобы узнать больше об API коллекций, частью которого является ArrayList
.
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);