java反转数组
我编写了反转整数数组的代码。代码如下所示:
public class ReverseArray {
public static void main(String[] args) {
try {
int[] arr = new int[5];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
for (int i = 0; i <= arr.length/2; i++)
int temp = arr[0];
arr[0] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
System.out.println(arr);
} catch (Exception e) {
System.out.println(e);
}
}
}
但它并没有逆转阵列。。我得到以下输出
[I@3bad086a
我看不出我的逻辑有什么问题
# 1 楼答案
您需要打印数组的内容,而不是数组本身。尝试使用循环遍历数组,并一次打印每个int
# 2 楼答案
你应该用
Arrays.toString(arr)
来做这个。 数组没有toString()
的特定实现,因此调用它会导致对象的默认toString
实现。在Java5中,作为arrays类中的一个静态方法,为数组添加了toString
功能。我猜由于向后兼容性的考虑,它没有直接添加到数组中顺便说一下,代码中有一个小错误。我相信您希望交换索引
length-i-1
和i
(而不是0
)中的值# 3 楼答案
这就是将引用打印到数组中
如果一次只打印一个元素,就会看到相反的数组
编辑: 还有两点
arr[i]
时,您正在使用arr[0]
李>arr.length / 2
。既然这是一个家庭作业问题,我就让你们来找出原因;试着打印出中间结果并解释它们李># 4 楼答案
好东西:
# 5 楼答案
你需要在数组中循环以打印它
首先,我会保留上面的代码(这是错误的(^{),现在我相信你投票否决我是件好事)
现在,我将提出一些简单的建议
# 6 楼答案
就这么做吧