java - 生成随机数字对列表时如何避免重复?

标签 java arrays random

我有以下代码在 boolean[][] 中将 10 个随机值设置为 true:

    bommaker = new boolean[10][10];
    int a = 0;
    int b = 0;

    for (int i=0; i<=9; i++) {          

        a = randomizer.nextInt(9);
        b = randomizer.nextInt(9);
        bommaker[a][b] = true; 
    }

但是,使用此代码,可以生成相同的值,因此将少于 10 个值设置为随机值。如果该值尚未被采用,我需要构建一个检查器。如果已经被采用,则需要重新进行随机化。但我不知道该怎么做。有人可以帮助我吗?

最佳答案

最简单的解决方案,不是最好的:

for (int i=0; i<=9; i++) {          
    do {
        a = randomizer.nextInt(10);
        b = randomizer.nextInt(10);
    } while (bommaker[a][b]);

    bommaker[a][b] = true; 
}

关于java - 生成随机数字对列表时如何避免重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8955854/

相关文章:

Haskell中的随机数列表

c++ - 查找字符数组中的数字总和

java - 像分组列表一样的 SQL 连接

java - 在 Play 中使用 Map 作为模型的属性

java - android中奇怪的内存分配

arrays - Shell Array Linux 中的唯一/无重复值

javascript - 如何从矩阵中删除第一个和最后一个括号?

C++,范围为 1-6 的随机数

c# - 在多个类别中使用一个 Random 对象是否会降低每个类别的随机性?

java - 查询多种文档类型 Spring Mongo