随机生成不重复随机数
java的Random对象提供随机方法,可在指定范围内随机产生随机数
如:
//接收随机后的随机数集合 List<Integer> ql = new ArrayList<Integer>(); //随机对象 Random random = new Random(); int temp; //取5个随机数 while(ql.size() < 5){ //生成随机数,范围50以内 temp = random.nextInt(50); //判断是否重复 if(!ql.contains(temp)){ ql.add(temp); } } System.out.println(ql); }
当需要将数组或集合中的某些数据随机抽取出来时,可通过上面方法将随机数作为下标依次取出数据
如:
Question q1=new Question(); q1.setTitle("测试1"); Question q2=new Question(); q2.setTitle("测试2"); Question q3=new Question(); q3.setTitle("测试3"); Question q4=new Question(); q4.setTitle("测试4"); Question q5=new Question(); q5.setTitle("测试5"); List<Question> question=new ArrayList<Question>(); question.add(q1); question.add(q2); question.add(q3); question.add(q4); question.add(q5);
//接收随机后的随机数集合 List<Integer> ql = new ArrayList<Integer>(); //随机对象 Random random = new Random(); int temp; //取5个随机数 while(ql.size() < 5){ //在数据集合大小范围内 temp = random.nextInt(question.size()); //判断是否重复 if(!ql.contains(temp)){ ql.add(temp); } }
//重新定义一个集合来接收随机后的数据 List<Question> lquestion=new ArrayList<Question>(); //根据所随机的下标集合,循环找到对应的数据集合中的值并重新get到新集合 for (int i = 0; i < ql.size(); i++) { lquestion.add(question.get(ql.get(i))); } //循环打印随机生成后的集合 for (int i = 0; i < lquestion.size(); i++) { System.out.println(lquestion.get(i)); }
这样就可以随机获取集合里面的5条数据了
注:如果是不重复的随机数,随机范围是不能小于所要获取的随机个数的
版权声明:本文为angto64原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。