使用JAVA中的随机函数产生不重复的数!

本文探讨了使用随机数生成器创建集合的过程,并通过实例展示了如何实现并输出指定大小的集合,以及额外生成一个随机数。
Random rd = new Random();
int i = rd.NextInt(100)+1


public class RandomTest
{
private static final int SET_SIZE = 6;
public static final int RANDOM_MAX_VALUE = 33;
private static Random random = new Random();
public static void main(String[] args)
{
Set set = new HashSet();
while (set.size() < SET_SIZE )
{
Integer integer =new Integer(random.nextInt(RANDOM_MAX_VALUE) );
set.add(integer);
}

Iterator it = set.iterator();
while(it.hasNext())
{
System.out.println("Output A ball:"+it.next());
}
int i;
i=random.nextInt(16)+1;
System.out.print("Output B ball:"+i);
}
}
Java中,`java.util.Random` 类提供了一系列生成伪随机的方法,包括整、浮点等。如果你想要生成重复随机序列,你可以采用以下几种方法: 1. **创建多个实例**:因为每次创建 Random 实例都会得到一个新的随机生成序列,所以可以创建多个 Random 对象,每个对象负责生成一段独立的随机。 ```java Random random1 = new Random(); Random random2 = new Random(); int[] sequence1 = generateUniqueSequence(random1.nextInt(100), 10); int[] sequence2 = generateUniqueSequence(random2.nextInt(100), 10); ``` 2. **利用 BitSet 或者 HashSet**:通过维护一个集合,比如 BitSet 或者 HashSet,保证每次产生随机重复。 ```java Set<Integer> numbers = new HashSet<>(); while (numbers.size() < 10) { int num = random.nextInt(100); // 生成0到99之间的随机 if (!numbers.contains(num)) { numbers.add(num); } } // 获取重复的序列 List<Integer> sequence = new ArrayList<>(numbers); ``` 3. **自定义序列**:如果你想控制特定范围内的随机并保持顺序,可以先生成一个包含所有可能值的组,然后按需取值。 ```java final int MAX = 100; int[] fullSequence = new int[MAX]; for (int i = 0; i < MAX; i++) { fullSequence[i] = i; } int index = 0; int nextNum; while ((nextNum = fullSequence[index++]) < 10) { // 取前10个重复字 System.out.println(nextNum); } ``` 请注意,虽然上述方法可以在一定程度上避免重复,但如果你需要非常大的随机序列且对性能有高要求,应考虑其他更高效的算法或据结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值