Elementy modyfikujące Java w foreach

Sam uczę się języka Java; dlatego poniższy kod nie ma innej funkcji niż do nauki / testowania.

Zasadniczo próbuję zmodyfikować elementy tablicy Integer (mianowicie ich zmniejszenie o połowę), podczas gdy w pętli foreach.

Powinienem zauważyć, że nie zmieniam kolejności, dodawania ani usuwania elementów; po prostu zmieniając ich wartości.

Oto mój kod:

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));

Jednak oryginalna tablica (intArray) brzmi:

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

A wyjście CopyArray to:

[47, 31, 71, 76, 78]

Tak więc, chociaż tablica została zmniejszona o połowę, elementy (liczby całkowite) również nie zostały zmniejszone o połowę. Więc co robię źle?

Dziękuję Ci

questionAnswers(4)

yourAnswerToTheQuestion