java - 仅使用 Random 而不使用 ArrayList 写入不重复的随机数

标签 java arrays loops random numbers

我有一个问题,无法为随机数编写更清晰的程序而不重复。我的代码可以工作,但不太好。

我尝试了很多想法,尤其是我只是玩循环

for(int i=1; i<=pole.length;i++){

   while(p<=13){
     i=rd.nextInt(13)+1;
     if(pole[i]==i){    
     }
     else{
        System.out.println`(i+"-"+p);
        pole[i]=i;
        p++;
        if(i>Max){
          Max=i;
        }
    }
  i=Max;
}

我希望有 13 个数字,而无需重复这个数字,但如何写得更容易

最佳答案

我尽力解决你的问题
第一种方式:

        Integer[] arr = new Integer[13];
        int i = 0;
        for (;;) {
            if (i == 13) {
                break;
            }
            int random = (int) (Math.random() * 100);

            if (!Arrays.asList(arr).contains(random)) {
                arr[i] = random;
                i++;
            }
        }

第二种方式:

  List<Integer> list = new ArrayList<>(); 
     while (list.size()<13) {  
        Integer random = (int )(Math.random() * 100);
        if(!list.contains(random)){
            list.add(random);
        }
    }

关于java - 仅使用 Random 而不使用 ArrayList 写入不重复的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57024229/

相关文章:

java - Selenium Webdriver 无法选择元素。出现 "Element is not currently visible and so may not be interacted with"错误

java - Android Studio 编译时无法删除文件

java - 当我们在 Java 中创建数组列表时,堆中的内存分配是如何形成的?

javascript - 是否可以在 for 循环中引用匿名数组?

javascript - 为什么这个简单的 for 循环没有按预期工作?

java - 了解 Java 编码

java - 环绕网格错误 - 仅减法?

php - 将数组与外部数组组合

python - 赛通 "Cannot assign default value to fields in cdef classes, structs or unions"

java - 如何格式化 Java 中循环打印的行