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