将数组向右移动一格

来源:爱站网时间:2021-09-16编辑:网友分享
这可能已经回答了,但是我已经寻找了一段时间,这就是所有解决方案都说的。如果已经回答过,请重定向到正确的线程。这个概念很简单。...

问题描述


这可能已经回答了,但是我已经寻找了一段时间,这就是所有解决方案都说的。如果已经回答过,请重定向到正确的线程。

这个概念很简单。我需要将数组的每个元素向右移一位。这必须从用户提供的索引中完成。这是应该发生的事情:

预期输出{0,1,2,3}-> add(4(element),1(location))-> {0,4,1,2,3}

但是,当测试我的代码时,我得到了这样的结果:

实际结果{0,1,2,3}-> add(4,1)-> {0,4,1,1,1}

这是我的代码:

private void shiftRight(int index) 
{
  assert !isFull();

  for(int i = index; i 

我觉得我非常接近解决这个问题。就像我认为没有什么大问题,但我似乎找不到它。

思路:


当您要向右移动元素时,由于会覆盖下一个数组点的值,因此无法从左向右浏览数组。我还注意到您写了“ i

首先,由于要使用原始类型,因此请确保数组有足够的空间(您将需要1个以上的空间)。

示例:

int[] array = new int[prevValue+1];

现在,您必须将值向右移动,以防止覆盖我们从右到左的下一个值(取决于您使用的是同一数组还是不同的数组)。

for (int i = array.length-1; i >= startPos; i--) {
     elements[i+1] = array[i];
}

然后在您预留的额外位置可以设置新值:

elements[startPos-1]=value;

最后但并非最不重要的是,您将必须填写以前的元素。

for (int i = 0; i 

上一篇:从一系列用户输入中分割字符串

下一篇:java.lang.NoClassDefFoundError:com / sun / istack / Pool

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载