键盘输入一个正整数N,要求将0至N的随机数录入一维数组,要求录入的随机数不重复。(下面例子的数组长度为6)
1.
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
Random r=new Random();
int arr[]=new int[6];
arr[0] = r.nextInt(num); //直接放入第一个元素
for(int i = 1;i <arr.length;i++){
arr[i] = r.nextInt(num); //生成当次随机数
for(int j = 0;j < i;j++){
if(arr[j]==arr[i]){
//当次生成的随机数与前面录入数组的元素做对比
i--; //重新生成本次随机数
break;
}
}
}
for (int a : arr) {
//遍历输出数组
System.out.print(a+" ");
}
}
2.
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
Random r=new Random();
int arr[]=new int[6];
HashSet<Integer> h=new <Integer>HashSet();
while(h.size()<6) {
h.add(r.nextInt(num));//没有包含该随机数,则录入该元素
}
for (int a : h) {
System.out.print(a+" ");
}