Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java向下移动数组元素_Java_Arrays_Sorting_Shift - Fatal编程技术网

Java向下移动数组元素

Java向下移动数组元素,java,arrays,sorting,shift,Java,Arrays,Sorting,Shift,我目前正在努力编写一个循环,该循环从数组中的某个点开始,然后将其向下推到右侧的某个点,以便在现有值所在的位置放置一个新值,即插入排序 到目前为止,我有一个循环,可以找到值的位置: int hold=0; for (int j = 0; j < nElements; j++) { int temp = list[j]; if (temp <= value) { hold = j; } } NeElements是我在数组中

我目前正在努力编写一个循环,该循环从
数组中的某个点开始,然后将其向下推到右侧的某个点,以便在现有值所在的位置放置一个新值,即插入排序

到目前为止,我有一个循环,可以找到值的位置:

int hold=0;
 for (int j = 0; j < nElements; j++)   
 {
    int temp = list[j];
    if (temp <= value)
    {
       hold = j;  
    }

 }
NeElements是我在数组中存储的当前整数数

当我调用将整数添加到数组中的方法时,所做的只是在点0中插入第一个数字。当再次调用该方法时,根本不添加数字


我也不能使用预定义的方法,如
System.arraycopy()
。我需要对循环进行编码。

您应该使用
System.arrayCopy()

实际上,您没有复制任何内容,因为您从
hold
开始,并在
j>=neelements
时循环,这是不应该发生的

要腾出空间,您需要使用以下方法:

System.arrayCopy(list, hold, list, hold+1, nElements - hold - 1);
添加了现在我们发现无法使用系统调用:

或者,如果不允许
arrayCopy
,则需要一个循环,例如:

for ( int i = nElements - 1; i > hold; i-- ) {
  list[i] = list[i-1];
}

请注意,此代码故意未经测试,因为此问题可能是家庭作业。

这是一个质量糟糕的答案-1不允许我使用预定义的方法来完成此任务。我需要做我自己的循环。@user1729448:那么问题应该提到这一点。请编辑您的问题。@Doorknob-也许现在好一点了?@Doorknob-或者
}catch(AnswerNotFinishedException anfe){…}
:)这不是一个真正的问题,您需要提出一个问题,比如“我运行这个代码,它确实……但我希望它这样做……”
for ( int i = nElements - 1; i > hold; i-- ) {
  list[i] = list[i-1];
}