Elementos de modificación de Java en un foreach
Estoy aprendiendo Java por mi cuenta; y, por lo tanto, el siguiente código no tiene otra función que la de aprendizaje / prueba.
Esencialmente, estoy intentando modificar los elementos de una matriz Integer (es decir, reducirlos a la mitad) mientras estoy en un bucle foreach.
Debo tener en cuenta que no estoy reordenando, agregando o eliminando elementos; Simplemente cambiando sus valores.
Aquí está mi código:
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));
Sin embargo, la matriz original (intArray) es la siguiente:
[47, 31, 71, 76, 78, 94, 66, 47, 73, 21]
Y la salida de copyArray es:
[47, 31, 71, 76, 78]
Entonces, aunque la matriz se ha reducido a la mitad en tamaño, los elementos (enteros) tampoco se han reducido a la mitad en valor. Entonces, ¿qué estoy haciendo mal?
Gracias