JAVA怎么实现从指定范围随机取不重复的6个数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA怎么实现从指定范围随机取不重复的6个数字相关的知识,希望对你有一定的参考价值。
如题,想实现当出现重复数字时,不管取了多少,都重新开始取,高手解答,谢谢
我写了一个给你:public static int[] randomNum(int start, int end)
int[] array = new int[6];
for(int i = 0; i < 6; i++)
array[i] = (int)(Math.random() * (end - start) + start);
for(int j = 0; j < i;j++)//检测是否重复
if(array[i] == array[j])
i = -1;//重复重新从头开始
break;
return array;
全部的代码:
public class RandomNum
public static void main(String[] args)
int[] array = randomNum(0, 1000);
for (int i = 0; i < 6; i++)
System.out.print(array[i] + " ");
public static int[] randomNum(int start, int end)
int[] array = new int[6];
for (int i = 0; i < 6; i++)
array[i] = (int) (Math.random() * (end - start) + start);
//System.out.print(array[i] + " ");
for (int j = 0; j < i; j++)
if (array[i] == array[j])
i = -1;
break;
return array;
参考技术A import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomTest
private static Set<Integer> set = null;
private final static Random random = new Random();
public RandomTest()
set = new HashSet<Integer>();
/**
* 将该方法抽出来,主要是在使用的时候灵活
* @param rang 标示获取数据的范围
* @param size 标示要获取随机数的数量
*/
public void getNumber(int rang,int size)
while(set.size()<size)
int randomNum=random.nextInt(rang);
set.add(randomNum);
public Set<Integer> getSet()
return set;
public static void main(String[] args)
RandomTest test = new RandomTest();
//要获取0~10之间的9个数字
test.getNumber(10, 9);
Set<Integer> set =test.getSet();
for(int i:set)
System.out.println(i);
参考技术B import java.util.HashSet;
import java.util.Set;
public class TestRandom
static final int MAX=10;//用来指定范围的
public static void main(String[] args)
Set set=new HashSet();//保证数据不重复
boolean flag=true;
while(flag)
int temp=(int)(Math.random()*MAX);
set.add(temp);
if(set.size()==6)
break;
System.out.print(set);
参考技术C 你的意思是重复的就不算了,如果这样,应该有一个循环,肯定还有一个if判断,知道重复不重复还应该一个一个的比较,那就用到数组,综合一下就可以了
java怎么在几个指定数字里面产生随机数
放在一个数组中,然后使用(int)Math.random();随机出数组的索引。int[] nums = 4, 1, 12, 10, 7, 6, 22, 100, 30, 82 ;
int i = (int) (Math.random() * nums.length);
System.out.println(nums[i]);
i = (int) (Math.random() * nums.length);
System.out.println(nums[i]);
已在Eclipse中测试过,可运行。 参考技术A 1、获取数组长度 int arr[] = 1,2,3,4,5;//定义一个数组int len = arr.length;//获取数组长度给变量len2、根据数组长度,使用Random随机数组的索引值 Random random = new Random();//创建随机对象int arrIdx = random.nextInt(len-1)
以上是关于JAVA怎么实现从指定范围随机取不重复的6个数字的主要内容,如果未能解决你的问题,请参考以下文章
请问用java从1-33个整数中随机抽取6个数字 且不重复 该怎么写?