Java 尝试通过数组中的n个元素实现循环旋转后的奇怪输出
我的代码输出有问题,无法理解为什么我会得到这个输出。问题是:“给定一个n个元素的数组和一个整数k,0Java 尝试通过数组中的n个元素实现循环旋转后的奇怪输出,java,arrays,algorithm,Java,Arrays,Algorithm,我的代码输出有问题,无法理解为什么我会得到这个输出。问题是:“给定一个n个元素的数组和一个整数k,0
3 4 5 19 10
2
Output: 5 19 10 3 4
我运行时的输出是:
Output:[I@42a57993
在Java中,如果您编写类似
System.out.print("Output:" + result + " ");
然后通过调用内置数组类的toString()
方法,将result
转换为字符串,默认情况下,该方法只打印出一个不特别可读的字符串,该字符串由数组类型和数组的哈希代码组成。在本例中,由于它是一个int
s数组,因此您可以看到类型([I
)和哈希代码(@42a57993
)
如果要查看数组的可读版本,请使用java.util
中的Arrays.toString
方法:
System.out.print("Output:" + Arrays.toString(result) + " ");
值得一提的是,有许多算法可以在适当的位置旋转数组,只使用O(1)个辅助内存。您可能想了解它们——它们非常聪明!在Java中,如果您编写类似
System.out.print("Output:" + result + " ");
然后,result
将通过调用内置数组类的toString()
方法转换为字符串,默认情况下,该方法只打印出一个不太容易被人读取的字符串,该字符串由数组类型和数组的哈希代码组成。在这种情况下,由于它是一个int
的数组,因此您看到了类型([I
)和散列码(@42a57993
)
如果要查看数组的可读版本,请使用java.util
中的Arrays.toString
方法:
System.out.print("Output:" + Arrays.toString(result) + " ");
值得一提的是,有许多算法只使用O(1)就可以在适当的位置旋转阵列辅助内存。你可能想读懂它们-它们非常聪明!我尝试过这个方法,但现在我的输出是我输入的原始数组scanner@LukeJ这是一个独立的问题。回头看看你的代码。你什么时候打印数组?相对于你复制元素的时候,在哪里会发生这种情况?我试过了,但我现在的输出是我在scanner@LukeJ这是一个独立的问题。回头看看你的代码。你什么时候打印数组?相对于你在上面复制元素的时候在哪里发生?标题是误导性的。标题是误导性的。