循环后的Java数组

循环后的Java数组,java,arrays,Java,Arrays,你能给我解释一下a[i]=a[a[i]是如何工作的吗 int[] a = new int[10] for(int i =0; i < 10; i++) a[i] = 9 - i for(int i =0; i < 10; i++) a[i] = a[a[i]] for(int i =0; i < 10; i++) int[]a=新的int[10] 对于(int i=0;i

你能给我解释一下
a[i]=a[a[i]
是如何工作的吗

int[] a = new int[10]
for(int i =0; i < 10; i++)
    a[i] = 9 - i

for(int i =0; i < 10; i++)
    a[i] = a[a[i]]

for(int i =0; i < 10; i++)
int[]a=新的int[10]
对于(int i=0;i<10;i++)
a[i]=9-i
对于(int i=0;i<10;i++)
a[i]=a[a[i]]
对于(int i=0;i<10;i++)

在第一个
for循环之后
完成其执行 这是数组的外观

a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]
    |    |    |    |    |    |    |    |    |    
 9  | 8  |  7 |  6 |  5 |  4 |  3 |  2 |  1 | 0
________________________________________________
a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]
    |    |    |    |    |    |    |    |    |    
 0  | 1  |  2 |  3 |  4 |  4 |  3 | 2  |  1 | 0
。。。在第二个for循环完成执行之后 这是数组的外观

a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]
    |    |    |    |    |    |    |    |    |    
 9  | 8  |  7 |  6 |  5 |  4 |  3 |  2 |  1 | 0
________________________________________________
a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]
    |    |    |    |    |    |    |    |    |    
 0  | 1  |  2 |  3 |  4 |  4 |  3 | 2  |  1 | 0
更新

快速查看后,
a[i]=i
a[i]=a[i]
相同,但它不是
…第二个循环中
数组中的前四个元素将由旧
数组中的最后四个元素更改,因此,由于我们更改了
数组中的前四个元素,最后四个元素将与第一个元素相同,但在后向中,其工作方式与
a[i]
int temp=a[i]相同;a[i]=a[temp]
a[i]
是一个
int
,您可以使用
int
通过索引查找
a
的元素。最终a[i]=a[a[i]]与a[i]=i-No相同,
a[i]=a[i]
将与
a[i]=a[9-i]
相同。在第二个for循环完成执行后,数组看起来是这样的-不,它不会这样。请在给出错误答案之前再试一次。谢谢@BackSlash我已根据你所说的更新了我的答案