gpt4 book ai didi

java - 理解数组和赋值

转载 作者:行者123 更新时间:2023-11-30 11:22:27 24 4
gpt4 key购买 nike

我真的不明白数组中的赋值是如何工作的。我正在浏览这段代码(一种用于反转数组值的方法):

 public static int[] reverseArray2(int[] array) 
{
int i = 0, j = array.length - 1;
for (i = 0; i < array.length / 2; i++, j--)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}

为什么在这种情况下数组现在被正确交换了? (比如一个由元素 {1,2,3,4,5} 组成的数组,我们想要交换它)。 array[i] = array[j] 这行以何种方式帮助实现这一点?而且,我怎么知道分配给数组的值是? (或者,它们以何种方式被覆盖)。我尝试使用另一种方法,但我得到了 {5,4,3,4,5} 作为输出。

最佳答案

基本上在该循环中,索引 i 从 0 开始,每次迭代递增 1,而 j 从最后一个数组元素开始,每次迭代递减 1。

i < length / 2条件确保我只到达数组的中间(这是整数除法,所以奇数无关紧要(例如:5/2 == 2))

int temp = array[i];将索引 i 处的数组值保存在一个临时变量中,并且 array[i] = array[j]用 j 处的值覆盖 i 处的值。最后array[j] = temp恢复临时变量并将其放置在 j 处。

关于java - 理解数组和赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21693315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com