小编Dar*_*ian的帖子

Java Array循环行为

我一直在测试一些不同的方法来将数组项与常数相乘.

我已经产生了不同的结果,这取决于我如何遍历数组并且我无法理解这一点(我对Java很新,并且仍然关注事物的传递或引用).

测试1

int[] array = {1, 2, 3, 4};

for (int number : array)
{
    number *= 2;
}
Run Code Online (Sandbox Code Playgroud)

导致未修改的数组项:

{1, 2, 3, 4}
Run Code Online (Sandbox Code Playgroud)

它似乎number不是实际的数组项,而是一个int用它的值初始化的新项.那是对的吗?


测试2

我认为通过使用一个Object数组可能会起作用,假设它number是对实际数组项的引用.以下是我使用的测试Integer而不是int:

Integer[] array = {1, 2, 3, 4};

for (Integer number : array)
{
    number *= 2;
}
Run Code Online (Sandbox Code Playgroud)

同样,导致数组项未经修改:

{1, 2, 3, 4}
Run Code Online (Sandbox Code Playgroud)

测试3

经过一些头部刮擦后,我尝试了一种不同的循环方法,如下所示:

int[] array = {1, 2, 3, 4};

for (int i = 0; i < array.length; i ++)
{ …
Run Code Online (Sandbox Code Playgroud)

java arrays loops

5
推荐指数
1
解决办法
112
查看次数

标签 统计

arrays ×1

java ×1

loops ×1