题目:产生1到10之间的随机整数,把这些随机整数装入一个10个长度的数据。要求,数组中数据不能重复
第一种方法:
public class Csdn{
public static void main(String[] args) {
int[] nums = new int[10];
int num;
for(int i = 0;i < nums.length;i++){
do{
num = (int) (Math.random()*10+1);
}while(judge(nums,num)); //返回boolean值
nums[i] = num;
System.out.println(nums[i]);
}
}
public static boolean judge(int[] arr,int key){ //去重
for(int j = 0;j < arr.length;j++){
if(arr[j] == key){
return true;
}
}
return false;
}
}
第二种方法:
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Csdn{ //使用Set集合与List集合来解决问题
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
Set<Integer> set = new HashSet<>(); //HashSet方法 数据不重复 所以重复数据不会被写入
int[] nums = new int[10];
for(int i = 0;i < 10;i++){
int num = (int) (Math.random()*10+1);
if(set.size() <= i){
set.add(num);
i--;
}
}
for(Integer s:set){ //数据存入ArrayList集合
list.add(s);
}
for(int j = 0;j < nums.length;j++){ //数据存入nums数组
nums[j] = list.get(j);
System.out.println(nums[j]);
}
}
}
愿前程似锦