解释Java代码:Set<Integer> set=new HashSet<>(); for(int i=0;i<arr.length;i++) { if(set.contains(arr[i])) set.add(arr[i]); if(!set.contains(arr[i])) { return true; } } return false;
时间: 2023-06-03 19:04:18 浏览: 134
这段代码的功能是检查在给定的整数数组中,是否存在重复的数字。首先,创建了一个 Integer 类型的 HashSet 集合,用来存储数组元素。然后使用 for 循环遍历数组。每次迭代都会使用 if 语句来判断元素是否已经存在于 HashSet 集合中。如果存在,说明已经遍历到了一个重复的元素,直接退出循环,返回 true。如果不存在,则将该元素添加到 HashSet 集合中。如果 for 循环结束后仍未找到重复元素,说明数组中没有重复数字,返回 false。
相关问题
去重复数字代码完善:import java.util.ArrayList; public class Main { public static void main(String[] args) { int[] arr = {1, 1, 2, 3}; ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < arr.length; i++) {
可以使用一个set来存储已经出现过的数字,每次遍历到一个数字时,先判断set中是否已经包含该数字,若没有则将其加入set和list中,否则跳过该数字。代码如下:
```java
import java.util.ArrayList;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
int[] arr = {1, 1, 2, 3};
ArrayList<Integer> list = new ArrayList<Integer>();
HashSet<Integer> set = new HashSet<Integer>();
for (int i = 0; i < arr.length; i++) {
if (!set.contains(arr[i])) {
set.add(arr[i]);
list.add(arr[i]);
}
}
System.out.println(list); // [1, 2, 3]
}
}
```
使用java 表示:用0~20的随机数填充一个长度是20的数组,对这个数组去重,输出一个完全没有重复数据的数组
### 回答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));
}
}
```
运行该程序,即可输出一个没有重复数据的数组。
阅读全文