Java完成数组元素的移动功能:假设数组有n个元素,输入一个数x,把数组的第x个位置的元素删除了,后面的元素依次前进一个位置。 重复若干次这样的删除,得到最后的结果。
时间: 2024-10-03 07:02:38 浏览: 57
在Java中,可以使用ArrayList或LinkedList等动态数组结构来实现这个功能,因为它们支持在原地修改元素位置。这里是一个简单的示例,我们将使用ArrayList:
```java
import java.util.ArrayList;
public class ArrayMove {
public static void main(String[] args) {
ArrayList<Integer> array = new ArrayList<>();
// 初始化数组
for (int i = 0; i < n; i++) {
array.add(i);
}
int x;
while ((x = scanner.nextInt()) != -1) { // 假设scanner用于获取用户输入
if (x >= 0 && x < array.size()) {
// 移除指定位置的元素
array.remove(x);
// 调整其余元素的位置
for (int i = x; i < array.size() - 1; i++) {
array.set(i, array.get(i + 1));
}
} else {
System.out.println("Invalid input! Index should be between 0 and " + (array.size() - 1));
}
}
// 输出最终结果
for (int num : array) {
System.out.print(num + " ");
}
}
}
```
在这个程序中,我们首先创建了一个ArrayList,并初始化了n个元素。然后在一个循环里,每次从用户那里读取一个数字x,检查它是否有效。如果有效,就移除该位置的元素并调整其余元素的位置;如果不有效,则打印错误信息。当用户输入-1时,通常表示结束操作。
注意,对于大规模数据或者频繁的插入和删除操作,使用ArrayList效率较低,考虑使用LinkedList会更合适,因为它提供O(1)的时间复杂度进行插入和删除。
阅读全文