一尘不染

Java,在数组中移动元素

algorithm

我在Java中有一个对象数组,我试图将一个元素拉到顶部,然后将其余元素向下移动一个。

假设我有一个大小为10的数组,并且我正在尝试提取第五个元素。第五个元素进入位置0,所有从0到5的元素将向下移位1。

该算法无法正确移动元素:

Object temp = pool[position];

for (int i = 0; i < position; i++) {                
    array[i+1] = array[i];
}
array[0] = temp;

如何正确执行?


阅读 687

收藏
2020-07-28

共1个答案

一尘不染

假设您的数组是{10,20,30,40,50,60,70,80,90,100}

您的循环的作用是:

迭代1: array [1] = array [0]; {10,10,30,40,50,60,70,80,90,100}

迭代2: array [2] = array [1]; {10,10,10,40,50,60,70,80,90,100}

你应该做的是

Object temp = pool[position];

for (int i = (position - 1); i >= 0; i--) {                
    array[i+1] = array[i];
}

array[0] = temp;
2020-07-28