【发布时间】:2020-04-29 23:55:48
【问题描述】:
我正在阅读 Java 完整参考书,在那里我遇到了以下代码示例,我希望输出为 AAAAAAAAAA(10 次),但我将数组右旋了一个。
在this thread 开发人员说
不同之处在于 Arrays.copyOf 不仅复制元素,还创建一个新数组。 System.arraycopy 复制到现有数组中。
但输出说明了其他内容。
public class TestClass {
public static void main(String[] args) {
byte a[] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 };
System.arraycopy(a, 0, a, 1, a.length - 1);
System.out.println(new String(a));
}
}
为什么我期待 AAAAAAAAAA
在 0 处选择 A,在 1 处选择 A -> AACDEFGHIJ
在 1 处选择 A,在 2 处选择 A -> AAADEFGHIJ
....
......
PS:原来 System.arraycopy 可用于有效地旋转(移位)任何类型的数组。
【问题讨论】:
标签: java