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]

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

Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос