我已尝试过这段代码,但我不确定它为什么不起作用:
String[] arr = {"A", "B", "C", "D", "E"};//AD
String[] arr2 = arr;
int last = arr.length-1;
int first = 0;
int size = arr.length;
while (first < size) {
arr2[first] = arr[last];
last--;
first++;
}
System.out.print(Arrays.toString(arr2));
有人可以帮忙吗?
答案 0 :(得分:2)
此行不符合您的想法:String[] arr2 = arr
。这只是将变量arr2
指向与arr
相同的对象引用。因此,一方面的变化会出现在另一方面,因为它们实际上是相同的。
为了反转数组,您需要遍历数组并将值复制到反转数组。
String[] arr = { "A", "B", "C", "D", "E" };
String[] reversed = new String[arr.length];
for(int i = 0, j = arr.length-1 ; i < arr.length; i++, j--) {
reversed[j] = arr[i];
}