Java 如何使数组的前半部分是0到7之间的随机整数,后半部分是数组前半部分的随机成员,但只能拾取一次

Java 如何使数组的前半部分是0到7之间的随机整数,后半部分是数组前半部分的随机成员,但只能拾取一次,java,arrays,random,Java,Arrays,Random,我想制作一个2d数组,它有{2,5,5,2,4,7,6},{5,2,6,7,4,5,2} 数组的前半部分是随机整数,后半部分是数组前半部分的随机成员。这样我就有了每对随机数。这是到目前为止我的代码,它给了我一个随机数数组。我不知道怎么做的部分是数组的后半部分。请帮忙 private int[][] board; private int[] arr = {1,2,3,4,5,6,7,8}; public Board() { b

我想制作一个2d数组,它有{2,5,5,2,4,7,6},{5,2,6,7,4,5,2} 数组的前半部分是随机整数,后半部分是数组前半部分的随机成员。这样我就有了每对随机数。这是到目前为止我的代码,它给了我一个随机数数组。我不知道怎么做的部分是数组的后半部分。请帮忙

        private int[][] board;
        private int[] arr = {1,2,3,4,5,6,7,8};
        public Board() {
            board = new int[DEFAULT_SIZE][DEFAULT_SIZE];
            for (int i=0;i<board.length;i++) {
            for (int j=0;j<board.length;j++) {
board[i][j] = (int) (Math.random()*10);
            }
            }
private int[][]板;
私有int[]arr={1,2,3,4,5,6,7,8};
公共委员会(){
board=新整数[默认大小][默认大小];

对于(int i=0;i,可以使用Random.nextInt()获取随机索引,然后使用它从第一个数组中获取随机数:

int randomIndex = Random.nextInt(arr.length);
int randomVal = arr[randomIndex];

你想要的是对原始随机列表的副本进行无序排列。请查看文档;你可以自己实现相同的算法,也可以只使用
集合。如果你不介意在数组和列表之间转换的麻烦,可以进行无序排列。但是我将如何制作整数arraylist 2d?或者如何在数组上实现它?我很抱歉我很抱歉假设你只需要整个下半部分是整个上半部分的混合版本,从上半部分的所有行中取出所有数字,并将它们放入一个单独的
ArrayList
中进行混合。然后按顺序读出混合后的数字,并将其分配到下半部分的行和列中。我尝试了这个,它给了我可以复制的数组的随机成员,但是我只需要一次随机成员,就好像数组的后半部分是数组的前半部分但是被洗牌了一样。然后你可以尝试这个:Integer[]arr={2,5,5,2,4,7,6};Collections.shuffle(Arrays.asList(arr))。