Изменение элементов Java в foreach

Я изучаю Java самостоятельно; и поэтому приведенный ниже код не имеет никакой другой функции, кроме как для обучения/тестирования.

По сути, я пытаюсь изменить элементы массива Integer (, а именно разделить их пополам )в цикле foreach.

Я должен отметить, что я не -упорядочиваю, добавляю или удаляю элементы; просто меняя их значения.

Вот мой код:

Logger.describe("Now copying half of that array in to a new array, and halving each element");
Integer[] copyArray = new Integer[DEFAULT_SAMPLE_SIZE / 2];     
System.arraycopy(intArray, 0, copyArray, 0, DEFAULT_SAMPLE_SIZE / 2);
for (Integer x : copyArray) x /= 2;
Logger.output(Arrays.deepToString(copyArray));

Однако исходный массив (intArray )таков:

[47, 31, 71, 76, 78, 94, 66, 47, 73, 21]

И вывод copyArray:

[47, 31, 71, 76, 78]

Таким образом, несмотря на то, что размер массива уменьшился вдвое, значение элементов (Integers )не уменьшилось вдвое. Так что я делаю неправильно?

Спасибо

5
задан Mattias Isegran Bergander 14 June 2012 в 12:43
поделиться