我在Java中有一个对象数组,我试图将一个元素拉到顶部,然后将其余元素向下移动一个。
假设我有一个大小为10的数组,并且我正在尝试提取第五个元素。第五个元素进入位置0,所有从0到5的元素将向下移位1。
0
该算法无法正确移动元素:
Object temp = pool[position]; for (int i = 0; i < position; i++) { array[i+1] = array[i]; } array[0] = temp;
如何正确执行?
假设您的数组是{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;