使用java 表示:用0~20的随机数填充一个长度是20的数组,对这个数组去重,输出一个完全没有重复数据的数组
时间: 2023-09-14 16:05:49 浏览: 153
### 回答1:
int[] arr = new int[20];
Random rand = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = rand.nextInt(20);
}
Set<Integer> set = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
if(set.add(arr[i])){
System.out.print(arr[i] + " ");
}
}
### 回答2:
Java代码如下:
```java
import java.util.Arrays;
public class UniqueArray {
public static void main(String[] args) {
int[] array = new int[20];
for (int i = 0; i < array.length; i++) {
array[i] = (int) (Math.random() * 21);
}
int[] uniqueArray = removeDuplicates(array);
System.out.println("原数组:" + Arrays.toString(array));
System.out.println("去重后的数组:" + Arrays.toString(uniqueArray));
}
public static int[] removeDuplicates(int[] array) {
int length = array.length;
for (int i = 0; i < length; i++) {
for (int j = i + 1; j < length; j++) {
if (array[i] == array[j]) {
array[j] = array[length - 1];
length--;
j--;
}
}
}
int[] uniqueArray = Arrays.copyOf(array, length);
return uniqueArray;
}
}
```
该程序首先创建一个长度为20的数组,然后使用Math.random()函数生成0~20的随机数填充该数组。接下来调用removeDuplicates()方法去除数组中的重复元素。这个方法使用了两重循环来遍历数组,对于每个元素,再次遍历数组中后续的元素,如果发现有相同的元素,则将该元素与数组最后一个元素交换,并将数组长度减1。这样就可以去除重复元素。最后使用Arrays.copyOf()方法复制长度为length的数组作为结果返回。
运行程序,会先输出原数组,再输出去重后的数组。
### 回答3:
使用Java语言可以这样实现:
首先,我们需要创建一个长度为20的整型数组,并使用Math类的random方法生成0到20的随机数填充数组的各个元素。
```java
int[] nums = new int[20];
for (int i = 0; i < nums.length; i++) {
nums[i] = (int) (Math.random() * 21);
}
```
接下来,我们使用HashSet类来去重数组中的重复元素,因为HashSet中的元素是唯一的。
```java
Set<Integer> set = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
set.add(nums[i]);
}
```
最后,我们可以将去重后的元素存储到一个新的数组中,并将其输出。
```java
int[] result = new int[set.size()];
int index = 0;
for (int num : set) {
result[index++] = num;
}
System.out.println("去重后的数组为:" + Arrays.toString(result));
```
完整的代码如下:
```java
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
int[] nums = new int[20];
for (int i = 0; i < nums.length; i++) {
nums[i] = (int) (Math.random() * 21);
}
Set<Integer> set = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
set.add(nums[i]);
}
int[] result = new int[set.size()];
int index = 0;
for (int num : set) {
result[index++] = num;
}
System.out.println("去重后的数组为:" + Arrays.toString(result));
}
}
```
运行该程序,即可输出一个没有重复数据的数组。
阅读全文