A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编写一个程序,获取10个1至20的随机数,要求随机数不能重复。

4 个回复

倒序浏览
package itheima;

import java.util.HashSet;
import java.util.Random;

public class Demo4 {
        public static void main(String args[]) {
                Random random = new Random();
                int r = random.nextInt(20) + 1;
//              创建一个集合对象
                HashSet<Integer> list = new HashSet<>();
//             循环判断集合大小为10
                while (true) {
                        if (list.size() <= 9) {
                                r = random.nextInt(20) + 1;
                                list.add(r);
                        } else {
                                break;
                        }
                }
//             遍历打印10个随机数
                for (Integer i : list) {
                        System.out.print(i+",");
                }

        }
}
回复 使用道具 举报
拿去不谢
/*
                需求:获取10个1-20之间的随机数,要求不能重复 用 ArrayList实现

                思路:        1.用方法public int nextInt(int n)
                                2.把获取的随机数放入ArrayList中,
                                3.遍历ArrayList,并且判断是否重复
*/
import java.util.ArrayList;
import java.util.Random;
class Third {
        public static void main(String[] args) {
        //创建ArrayList
        ArrayList<Integer> list=new ArrayList<>();
        //判断条件,满足的放入ArrayList
        Random rd=new Random();
        while(list.size()<10){

                int num=rd.nextInt(20)+1;

                if(!list.contains(num)){
                        list.add(num);
                }
        }
        //遍历list
        //System.out.println("从一到二十的不重复随机数为");
        //for(Integer random : list){
        //                System.out.print(random+"\t");

        //}
        System.out.println(list);
        }
}
回复 使用道具 举报
试着不用hashSet做了一个方法
回复 使用道具 举报
试着用数组做的方法:
import java.util.Arrays;
import java.util.Random;

public class test {
        public static void main(String[] args) {
                Random ran = new Random();
                int[] arr = new int[20];
                int count = 0;
                flag:while (true) {
                        int num = ran.nextInt(20) + 1;
                        for (int i = 0; i < arr.length; i++) {
                                if (arr[i] == num) {
                                        continue flag;
                                }
                        }
                        arr[count] = num;
                        count++;
                        if (count == arr.length) {
                                break;
                        }
                }
                System.out.println(Arrays.toString(arr));
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马