向左移动数组元素

时间:2018-11-12 18:07:52

标签: java arrays

编写代码以将数组元素向左移int n(键盘输入)并将空格替换为零。

例如int[] data = { -1, 1, 3, 7, 5},我想看看{ 3, 7, 5, 0, 0}。 假设我有:

public static void shiftLeft( int[] data, int n )
{
    System.arraycopy( data, 1, data, 0, data.length - 1 );
    data[data.length - 1] = 0;
}

任何快速帮助都将非常有用。

1 个答案:

答案 0 :(得分:1)

您很亲密,但是您的srcPos参数应该是n,而length参数应该是data.length - n。然后,您可以使用重载的Arrays#fill方法,该方法接受一个开始/结束索引,以0填充数组的其余部分:

public static void shiftLeft(int[] data, int n) {
    System.arraycopy(data, n, data, 0, data.length - n);
    Arrays.fill(data, data.length - n, data.length, 0);
}

使用示例输入对此进行测试会产生以下结果:

int[] data = { -1, 1, 3, 7, 5};
shiftLeft(data, 2);
System.out.println(Arrays.toString(data));

输出:

[3, 7, 5, 0, 0]