用java编写程序:有N个数据存放在数组A中,输入一个数据x,要在数则A中y数据第一次出现的位置后,插入数据x,若数据y不在数组A中,则将x插入数组A的首位置
时间: 2024-09-21 17:12:28 浏览: 35
在一个三维空间中 求点到点之间的距离
在Java中,你可以使用`ArrayList`或`Vector`等动态数组来实现这个功能,因为它们支持在任意位置插入元素。这里是一个简单的示例,假设我们有一个ArrayList `dataArray`:
```java
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// 创建一个ArrayList并初始化数据
ArrayList<Integer> dataArray = new ArrayList<>();
int N; // 输入的数据个数
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据个数N:");
N = scanner.nextInt();
for (int i = 0; i < N; i++) {
System.out.print("请输入第 " + (i+1) + " 个数据:");
int data = scanner.nextInt();
dataArray.add(data); // 添加到列表尾部
}
// 接收用户输入的目标数据和新数据
System.out.print("请输入需要查找的数据y:");
int y = scanner.nextInt();
System.out.print("请输入新数据x:");
int x = scanner.nextInt();
// 查找y的位置
int index = Collections.binarySearch(dataArray, y);
if (index >= 0) { // 如果找到y
// 插入数据x到y之后
dataArray.add(index + 1, x);
} else { // 如果没找到y(小于零),即y不存在于数组中
// 插入x到数组开头
dataArray.add(0, x);
}
// 打印更新后的数组
System.out.println("插入x后的数组:");
for (int i : dataArray) {
System.out.print(i + " ");
}
scanner.close(); // 关闭Scanner
}
}
```
在这个程序中,我们首先接收用户输入,然后对数组进行操作。如果找到了目标值y,就在其首次出现位置后插入x;如果找不到y,就将x插入到数组的开始位置。
阅读全文