Я изучаю 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 )не уменьшилось вдвое. Так что я делаю неправильно?
Спасибо