修改数组中的元素

问题描述 投票:0回答:1

我不明白为什么这个问题的答案是BABA,根据基拉学习和BBBB,当我投入w3schools时。根据我自己的计算,我得到了ABBA。根据 java Visualizer、w3schools 和 chatgpt,他们将 ab 和 ba 都更改为 {"B", "B"},这对我来说没有意义。

我的工作:

ba[0] = "A"
,变为
ab[1]
(B)。
ba = {"B", B"}

ba[1] = "B"
,变为
ab[0]
(A)。
ba = {"B", "A"}

ab = {"A","B"}

ba = {"B", "A"}

ab[0] + ab[1] + ba[0] + ba[1]
=ABBA

请告诉我哪里出了问题,我是java初学者。问题是这样的:

String[] ab = {"A", "B"};
String[] ba = ab;
ba[0] = ab[1];
ba[1] = ab[0];
System.out.println(ab[0] + ab[1] + ba[0] + ba[1]);
java
1个回答
1
投票

您没有将数组复制到

ba
,但您做了一个引用。更改其中一个的内容会同时更改两者。

ba[0] = ab[1];
// ab[0] is now also set to ab[1], so ab[0] is B and ab[1] is B

ba[1] = ab[0];
// ab[1] is now also set to ab[0]

要实现您的期望,请使用

Array.clone()
:

String[] ab = {"A", "B"};
String[] ba = ab.clone();
ba[0] = ab[1];
ba[1] = ab[0];
System.out.println(ab[0] + ab[1] + ba[0] + ba[1]);
© www.soinside.com 2019 - 2024. All rights reserved.