用java解决如下问题:接收给定的数据(如:4 88 43 43 98 #...,其中第一个数代表数组长度,其余数代表数组元素,# 号用于终止接收数据,这些数据用空格进行分隔),遇到 # 号终止接收; 创建数组并添加元素; 去除数组中重复元素。
时间: 2024-09-26 21:08:29 浏览: 72
java 将一个数组逆序输出的方法
在Java中,你可以按照以下步骤来解决这个问题:
1. **接收输入数据**:
使用`Scanner`类从控制台读取数据,直到遇到`#`号为止。例如:
```java
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt(); // 获取数组长度
int[] array = new int[length];
for (int i = 0; i < length; i++) {
if (scanner.hasNextInt()) { // 检查是否还有下一个整数
array[i] = scanner.nextInt();
} else if (scanner.hasNext("#")) { // 遇到 # 号,结束输入
break;
}
}
scanner.close(); // 关闭Scanner
```
2. **创建数组并添加元素**:
上面的代码已经完成了这个部分。
3. **去除数组中重复元素**:
可以使用Java的HashSet来存储数组,因为它不允许有重复元素。遍历原数组并将每个元素加入HashSet,最后将HashSet转换回数组:
```java
Set<Integer> uniqueSet = new HashSet<>(Arrays.asList(array));
int[] uniqueArray = new int[uniqueSet.size()];
int index = 0;
for (Integer num : uniqueSet) {
uniqueArray[index++] = num;
}
```
现在`uniqueArray`包含了无重复的元素。
完整的代码示例:
```java
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数组长度:");
int length = scanner.nextInt();
int[] array = new int[length];
for (int i = 0; i < length; i++) {
if (scanner.hasNextInt()) {
array[i] = scanner.nextInt();
} else if (scanner.hasNext("#")) {
break;
}
}
scanner.close();
// 去除重复元素
Set<Integer> uniqueSet = new HashSet<>(Arrays.asList(array));
int[] uniqueArray = new int[uniqueSet.size()];
int index = 0;
for (Integer num : uniqueSet) {
uniqueArray[index++] = num;
}
System.out.println("去重后的数组:");
for (int num : uniqueArray) {
System.out.print(num + " ");
}
}
}
```
阅读全文