Java,移动数组中的元素 [英] Java, Shifting Elements in an Array

查看:25
本文介绍了Java,移动数组中的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have an array of objects in Java, and I am trying to pull one element to the top and shift the rest down by one.

假设我有一个大小为 10 的数组,我想拉出第五个元素.第五个元素进入 0 位置,所有从 0 到 5 的元素将向下移动一.

Assume I have an array of size 10, and I am trying to pull the fifth element. The fifth element goes into position 0 and all elements from 0 to 5 will be shifted down by one.

这个算法没有正确地移动元素:

This algorithm does not properly shift the elements:

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}

Assuming your array is {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}

Iteration 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}

Iteration 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;

这篇关于Java,移动数组中的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆