如何生成 java 中没有重复值的随机数数组

how generate a random number array that have no duplicate values in java

我想生成一个没有重复项的随机数数组。我的阵列有一个固定的愤怒。我会生成随机数(0-4),所以我想要这样的数组 (0,3,1,4,2) 或 (3,2,4,0,1) 就像那个范围内随机顺序的东西。我的代码没有错误。但是我没有得到我想要的输出。

import java.util.Random;

public class randNumArr {

    public static void main(String[] args) {
        int arr[] = {-1, -1, -1, -1, -1};

        Random rd = new Random();
        int i = 0;
        int val;
        while (i < 5) {
            if (arr[i] == -1) {
                val = rd.nextInt(4);
                for (int d = 0; d < arr.length; d++) {

                    if (arr[i] == val) {
                        // break;
                    } else {
                        arr[i] = val;
                        break;
                    }
                }
                i++;
            }


        }

        /*Printing the array*/
        for (int n = 0; n < arr.length; n++) {
            System.out.print(arr[n] + " ");
        }

    }

}

尝试将

行中的 i 替换为 d
if (arr[d]==val) {

这应该可以解决问题![​​=11=]