5
我一直在測試一些不同的方式來乘以一個常量數組的項目。Java數組循環行爲
我也取決於產生不同的結果如何我遍歷數組,我無法理解這一點(我是相當新的Java和仍然讓我周圍的事物,如何傳遞或引用頭)。
測試1
int[] array = {1, 2, 3, 4};
for (int number : array)
{
number *= 2;
}
從而造成未修改的數組項:
{1, 2, 3, 4}
好像number
是不實際的數組元素,但被初始化它一個新的int
的價值。那是對的嗎?
試驗2
我認爲,通過使用對象可能工作的陣列,假設number
然後到實際的數組項的引用。這是我在使用Integer
的測試,而不是int
:
Integer[] array = {1, 2, 3, 4};
for (Integer number : array)
{
number *= 2;
}
再次,導致數組項不變:
{1, 2, 3, 4}
測試3
經過一番撓頭我嘗試了不同的方法循環,例如:
int[] array = {1, 2, 3, 4};
for (int i = 0; i < array.length; i ++)
{
array[i] *= 2;
}
在數組項所得乘以:
{2, 4, 6, 8}
這最後的結果對我來說很有意義,但我不明白,從第二次測試的結果(或第一爲此事)。到現在爲止,我一直認爲測試1和測試2中使用的循環只是測試3中使用的循環的簡寫版本,但它們明顯不同。
爲什麼沒有這方面的工作如我所料?爲什麼這些循環不同?
,你正在做的像陣列[0] = array [0] * 2;即你用新的相乘值替換數組。 – 2014-09-05 04:04:36
跟我說說 - Java是通過價值傳遞的。 Java是通過價值傳遞的。 Java是通過價值傳遞的。 – csmckelvey 2014-09-05 04:39:16