Java 是否可以在不重复出现值的情况下打印此2D数组?

Java 是否可以在不重复出现值的情况下打印此2D数组?,java,arrays,multidimensional-array,random,Java,Arrays,Multidimensional Array,Random,这是我当前的随机2D数组,我需要使每个数组打印在参数中没有重复值。我已经尝试过其他帖子,但没有一篇涉及多维数组,特别是Math.random 还有,我排列这个数组值表的方式可能吗?稍后,我将需要能够测试他们的用户输入。 谢谢你抽出时间 public static void main(String[] args) { System.out.println("B I N G O"); int[][] board = new int[5][5]; for(int i

这是我当前的随机2D数组,我需要使每个数组打印在参数中没有重复值。我已经尝试过其他帖子,但没有一篇涉及多维数组,特别是Math.random

还有,我排列这个数组值表的方式可能吗?稍后,我将需要能够测试他们的用户输入。 谢谢你抽出时间

public static void main(String[] args) {

    System.out.println("B  I  N  G  O");
    int[][] board = new int[5][5];

    for(int i = 0; i < board.length; i++){
       for(int j =0; j <board.length; j++){
           board[0][j] = (int)(Math.random() *15) +1;
           board[1][j] = (int)(Math.random() *15) +16;
           board[2][j] = (int)(Math.random() *15) +31;
           board[2][2] = 0;
           board[3][j] = (int)(Math.random() *15) +46;
           board[4][j] = (int)(Math.random() *15) +61;
           System.out.printf("%-3s", board[j][i]);
       }
       System.out.println("");
    }  
}       
publicstaticvoidmain(字符串[]args){
System.out.println(“B I N G O”);
int[][]板=新int[5][5];
对于(int i=0;i创建一个包含0、1、2、3、…#行*#列中可能的数字的列表
  • 选择一个介于0和当前列表最大长度之间的随机数“randomInteger”
  • 将列表[randomNumber]分配给当前板[i][j],并从列表中删除该数字
  • 同样,在删除列表中的所有数字之前也要这样做

  • 您很可能会达到预期的结果。

    尝试使用ArrayList保留所有使用的整数

    import java.util.ArrayList;
    import java.util.Random;
    
    public class Solution  {
        static ArrayList<Integer> random=new ArrayList<Integer>();  
        private static Random r = new Random();
        public static void main(String[] args) {
            System.out.println("B  I  N  G  O");
            int[][] board = new int[5][5];        
            for(int i = 0; i < board.length; i++){
               for(int j =0; j <board.length; j++){
                   if(j==0)
                       board[i][j] = getUniqueRandom(15, 1);
                   else if(j==1)
                       board[i][j] = getUniqueRandom(30, 16);
                   else if(j==2)
                       board[i][j] = getUniqueRandom(45, 31);
                   else if(j==3)
                       board[i][j] = getUniqueRandom(60, 46);
                   else if(j==4)
                       board[i][j] = getUniqueRandom(75, 61);
                   if(i==board.length/2 && j==board.length/2) board[i][j] = 0;
                   System.out.printf("%-3s", board[i][j]);
               }
               System.out.println("");     
        }
        }
        static int getUniqueRandom(int max, int min){
            int num = r.nextInt(max-min+1) + min;
            while (random.contains(num)) {
                num = r.nextInt(max-min+1) + min;
            }
            random.add(num);
            return num;
        }
    }
    
    import java.util.ArrayList;
    导入java.util.Random;
    公共类解决方案{
    静态ArrayList random=新ArrayList();
    私有静态随机r=新随机();
    公共静态void main(字符串[]args){
    System.out.println(“B I N G O”);
    int[][]板=新int[5][5];
    对于(int i=0;i对于(int j=0;j所有维度。因此在board[0][0]上。B列下的第一个数字是board[0][4]哪一个是B列下的最后一个数字。对于打印的每个字母,依此类推。所以基本上放弃我创建的嵌套for循环?因为如果它是多维数组,那么在我尝试根据值测试用户输入时,它会给我带来问题?它像一个符咒一样工作,我为此彻夜未眠。找不到任何地方在Stack/Google上,如何将我的穴居人代码转换成可以工作和精简的代码。我已经纠正了它,现在我正在研究一种用户输入方法,它可以根据数组检查输入是否有宾果游戏。